【发布时间】:2017-12-06 21:02:21
【问题描述】:
我有一个应用程序一直在使用现在已弃用的 pre-iOS 7 方法来实现 IAP,方法是查看到达我们的事务队列观察器的事务中包含的 transactionReceipt。那效果很好。观察者的新实现只跟踪是否报告了任何新事务(状态为SKPaymentTransactionStatePurchased),如果在队列中找到任何新事务,它会获取应用程序收据(不是@987654323 @) 并将其发送到服务器。
直到今天,我发现新交易始终在我从 Apple 收到的解密应用收据的“in_app”字段中。今天我正在测试订阅(据我所知),但注意到当我订购非订阅、非消耗性产品时,它的交易不出现在“应用收据中的 in_app" 数组,直到我订购 另一个 非订阅、非消耗性产品。此时,我在“in_app”数组中看到了先前订购的产品,但没有看到新订购的产品。
Both以前购买的和新购买的物品都存在于“latest_receipt_info”数组中。我只会使用该数组而不是“in_app”,但直到我开始测试订阅后我才开始看到“latest_receipt_info”,所以我认为它并不总是存在。
问题:我错过了一步吗?在使用之前,我是否应该在我的事务队列观察器中刷新我的应用程序收据?如果我这样做,它会不会莫名其妙地提示用户输入他们的 Apple ID 凭据(他们只是下了订单并输入了他们的凭据;我不希望他们再次这样做)?
【问题讨论】:
标签: ios in-app-purchase receipt-validation