如何恢复和验证自动续订订阅?

时间:2016-05-28 19:56:35

标签: ios swift in-app-purchase app-store

首先,关于此主题的SO似乎有很多问题,但大多数似乎已经过时,并且没有考虑iOS 9中提供的API。

1)如何恢复购买?

当用户点击> = iOS 9上的自动续订订阅的Restore Purchase按钮时,是否应该调用SKReceiptRefreshRequestSKPaymentQueue.defaultQueue().restoreCompletedTransactions()?目前,我验证收据文件以确定latest_receipt_info的有效订阅和解析,是否在调用restoreCompletedTransactions时在设备上创建了收据文件?

2)如何验证自动续订订阅?

要验证> = iOS 9上的自动续订订阅仍处于有效状态且未取消,我会在每次用户启动应用时致电SKReceiptRefreshRequest。但是docs说:

  

在您的应用中加入一些机制让用户恢复他们的状态   购买,例如“恢复购买”按钮。恢复购买   提示输入用户的App Store凭据,从而中断   您的应用流程:因此,不会自动恢复   购买,尤其不是每次推出您的应用

我应该每天只拨打一次电话还是其他方式验证订阅?

更新

2)刚发现这个here

  

启动应用后立即执行收据验证,   在显示任何用户界面或生成任何子进程之前。   在主函数之前执行此检查   调用NSApplicationMain函数。为了更加安全,您可以   在应用程序运行时定期重复此检查。

显然,无需用户互动即可验证收据。出于安全考虑,甚至建议在自己的服务器上进行此操作。因此,只要收据由App Store服务器验证,就不需要收据刷新请求。

0 个答案:

没有答案