Itunes在python本地接收验证。

时间:2014-06-14 04:38:32

标签: python validation in-app-purchase itunes receipt

我是OpenSSL的新手,我正在尝试在python中本地验证Itunes IAP收据。

收据验证编程指南(https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html)说:

  

最外层部分(图中标记为Receipt)是一个PKCS#7容器,由RFC 2315定义,其有效负载使用ASN.1(抽象语法表示法一)编码,由ITU-T X.690定义。有效负载由一组接收属性组成。每个收据属性都包含类型,版本和值。

import OpenSSL

f = open('sample_IAP_receipt_base64.txt', 'r').read()

type = OpenSSL.crypto.FILETYPE_ASN1
data = OpenSSL.crypto.load_pkcs7_data(type, f)
print f

此测试似乎会产生错误:

    data = OpenSSL.crypto.load_pkcs7_data(type, f)
OpenSSL.crypto.Error: [('asn1 encoding routines', 'ASN1_CHECK_TLEN', 'wrong tag'), ('asn1 encoding routines', 'ASN1_ITEM_EX_D2I', 'nested asn1 error')]

任何想法如何使这个工作?

2 个答案:

答案 0 :(得分:1)

我的建议是使用现有的python包,itunes-iap是一个很好的包:

https://pypi.python.org/pypi/itunes-iap

答案 1 :(得分:0)

唯一可以在本地执行此操作的是该库:

https://github.com/SilentCircle/iap-local-receipt