我已经创建了自动更新产品并在沙盒环境中进行了测试。我的问题是我已经购买了一种产品,如果我尝试使用相同的 Apple 帐户购买相同的产品,它会显示已按预期购买的警报,但我无法获取该交易详细信息,因为它在更新的交易中执行失败状态。当我们进入初始交易时,我如何获得购买的详细信息(至少原始收据 ID)。
3 回答
有两种方法可以获取用户购买的交易详情:
- 刷新收据
- 恢复已完成的事务
要详细了解刷新收据和恢复交易之间的区别,请查看:- SKReceiptRefreshRequest vs restoreCompletedTransactions
简而言之,
- 刷新收据会要求 App Store 提供收据的最新副本。
- 恢复已完成的交易会为用户所做的每个已完成交易创建一个新交易,本质上是为您的交易队列观察者重放历史记录。
问题: 当我们进入初始交易时,我如何才能获得购买的详细信息(至少原始收据 ID)。
答:如果您想每次都使用原始receiptID 验证用户,而不是用户SKReceiptRefreshRequest 来验证用户交易。
注意:任何时候如果您使用 RestoreCompletedTransactions 验证用户,您的 transactionID 将会改变。查找 restoreTransaction 时更改的参数列表:https ://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW1
您必须在您的应用程序中实施一种恢复已购买产品的机制。
有关恢复购买的产品的详细信息: 恢复购买的产品
要进入实施部分,您可以遵循本教程: 在 App Purchase 教程中
教程的后面部分将指导您完成恢复购买的实现。
通过使用 App Store 验证收据,您可以找到已购买的产品标识符。您可以使用 Cocoapods 库来查找购买的产品。
- SwiftyStoreKit
- DHAppleReceiptParser
- IAP验证
我希望它对你有帮助。