我的应用程序中的收据验证最近开始崩溃。显然,在过去的2-3周内,苹果已经将应用内购买收据的版本号从2改为3。
在检查签名结构时:
struct signature_blob {
uint8_t version;
uint8_t signature[128];
uint32_t cert_len;
uint8_t certificate[];
} *signature_blob_ptr = (struct signature_blob *)signature_bytes;…其中,signature_bytes是来自transactionReceipt (从iOS 7开始不推荐使用) SKPaymentTransaction对象的JSON blob签名字符串的base64解码值。
…我已经为version == 2硬编码了一个检查。现在我看到了3的值。
在App Store中使用了几年后,在过去的2-3周内,我们的应用程序开始收到新购买和“恢复”购买未能激活应用程序内容的用户报告。因此,我认为这是苹果最近的一个变化。
有没有人能证实苹果做出了改变?提供更多详细信息?也许可以告诉我关于这个新版本的采购收据的文档?
发布于 2016-06-14 20:21:05
是的,苹果在4月初的某个时候推出了版本3签名。我没有找到任何文档或更改日志,但这是可以理解的,因为transactionReceipt已被弃用。
版本3的不同之处在于签名长度,它现在是256位而不是128位,并且它使用最新的Apple Inc. Root Certificate签名。
https://stackoverflow.com/questions/37627230
复制相似问题