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

时间:2015-10-02 06:21:22

标签: ios in-app-purchase asn.1

我已经阅读了很多关于苹果的收据验证编程指南,并且已经在这里停留了好几天......

1.asn1c(如何解析)

ReceiptModule DEFINITIONS ::=
BEGIN

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

Payload ::= SET OF ReceiptAttribute

END

我使用此工具生成一些.h / .c文件,然后将它们添加到我的项目中: enter image description here 我不知道如何使用它。

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

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

InAppReceipt ::= SET OF InAppAttribute

我无法使用asn1c -fnative-types filename生成任何文件。我收到此错误:

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 vs Xcode 7.0.1)

3.AppleIncRootCertificate.cer,这个文件是否必要?

1 个答案:

答案 0 :(得分:1)

我会回答你的问题1。

看起来您正在尝试使用ASN.1类型定义而不将它们放在ASN.1模块中。所有ASN.1定义在它们之前和之后都需要以下内容:

ModuleName DEFINITIONS :: = BEGIN

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

END

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