Apple In-App购买收据版本3(突然出现而不是版本2)

时间:2016-06-04 06:41:01

标签: ios in-app-purchase receipt-validation

我的应用中的收据验证最近开始破坏。显然,在过去的2-3周内,Apple已将应用内购买收据的版本号从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已弃用)JSON blob的签名字符串的Base64解码值{/ 3}}。

...我对version == 2的支票进行了硬编码。现在我看到3的值。

在App Store中工作几年后,在过去的2-3周内,我们的应用程序开始收到新购买的用户报告,并且“恢复”购买未能激活我们应用的内容。所以我认为这是Apple最近的一个变化。

任何人都可以确认Apple做出了改变吗?提供更多细节?或许请指出有关此新购买收据的文档?

1 个答案:

答案 0 :(得分:2)

是的,Apple在4月初推出了第3版签名。我还没有找到任何文档或更改日志,但这是可以理解的,因为transactionReceipt已被弃用。

版本3的不同之处在于签名长度,它现在是256位而不是128位,并且使用最新的Apple Inc. Root Certificate签名。