如何验证收据(应用内购买)?

How to validate receipt ( In-App purchase)?

看了很多apple的receipt validation programming guide,卡在这里好几天了...

1.asn1c(如何解析)

ReceiptModule DEFINITIONS ::=
BEGIN

ReceiptAttribute ::= SEQUENCE {
type    INTEGER,
version INTEGER,
value   OCTET STRING
}

Payload ::= SET OF ReceiptAttribute

END

我使用这个工具生成了一些.h/.c文件,并将它们添加到我的项目中: 不知道怎么用。

这是应用内购买收据格式。

InAppAttribute ::= SEQUENCE {
   type                   INTEGER,
   version                INTEGER,
   value                  OCTET STRING
}

InAppReceipt ::= SET OF InAppAttribute

我无法使用 asn1c -fnative-types filename 生成任何 file.I 出现此错误:

ASN.1 grammar parse error near line 1 (token "::="): parse error, unexpected TOK_PPEQ, expecting TOK_DEFINITIONS
Cannot parse "IAP.asn1"

如果成功了,怎么用呢?只需添加到我的项目中?

2.OpenSSL?我必须使用它吗? libcrypto.a, libel.a如何使用这些文件?我必须重新生成吗? (EL Capitan 对比 Xcode 7.0.1)

3.AppleIncRootCertificate.cer , 这个文件是必须的吗?

我会回答你第 1 个问题。

您似乎在尝试使用 ASN.1 类型定义,而不是将它们放在 ASN.1 模块中。所有 ASN.1 定义都需要在它们前后添加以下内容:

模块名称定义 ::= 开始

...您的类型和值定义...

结束

请在您的定义前后添加这些(将 ModuleName 替换为您选择的以大写字母开头的名称)并查看错误消息是否消失。