在App App Purchase中使用自动续订订阅时需要还原按钮吗?

时间:2018-04-13 04:22:33

标签: ios objective-c swift in-app-purchase

我在我的应用中使用了auto-renewable subscription。一切正常,但如果用户从iPhone删除应用并再次安装,那么如何知道该用户是否已订阅?

我们是否必须存储用户数据或服务器?

我提到了类似的问题,他们说Apple拒绝使用auto-renewable In-App-Purchase恢复按钮的应用。

2 个答案:

答案 0 :(得分:3)

他们拒绝没有恢复按钮的应用。每个提供non_consumable或auto_renewable_subscription购买的应用都必须拥有它。它们还提供了您在SKPaymentQueue上实际恢复用户购买所需的一切,而无需将其存储在其他地方。

SKPaymentQueue.default().restoreCompletedTransactions()

将触发委托方法:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])

来自SKProductsRequestDelegateSKPaymentTransactionObserver

我推荐这本指南,其中一切都很有效:https://hackernoon.com/swift-how-to-add-in-app-purchases-in-your-ios-app-c1dc2fc82319

在询问购买历史记录之前,请不要忘记添加商品ID。

答案 1 :(得分:2)

你应该保留一个恢复按钮。

收据会告诉您订阅与否,您可以使用您的服务器对此进行验证。有关信息

https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

你必须检查 latest_receipt_info 键,这将是json数组,然后你读取最后一个对象并检查 expires_date 键。

https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW2

相关问题