【发布时间】:2014-08-04 16:19:40
【问题描述】:
我是 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')]
任何想法如何使它工作?
【问题讨论】:
-
你需要先从base64解码
标签: python validation in-app-purchase itunes receipt