首先,关于此主题的SO似乎有很多问题,但大多数似乎已经过时,并且没有考虑iOS 9中提供的API。
当用户点击> = iOS 9上的自动续订订阅的Restore Purchase
按钮时,是否应该调用SKReceiptRefreshRequest
或SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
?目前,我验证收据文件以确定latest_receipt_info
的有效订阅和解析,是否在调用restoreCompletedTransactions
时在设备上创建了收据文件?
要验证> = iOS 9上的自动续订订阅仍处于有效状态且未取消,我会在每次用户启动应用时致电SKReceiptRefreshRequest
。但是docs说:
在您的应用中加入一些机制让用户恢复他们的状态 购买,例如“恢复购买”按钮。恢复购买 提示输入用户的App Store凭据,从而中断 您的应用流程:因此,不会自动恢复 购买,尤其不是每次推出您的应用。
我应该每天只拨打一次电话还是其他方式验证订阅?
2)刚发现这个here:
启动应用后立即执行收据验证, 在显示任何用户界面或生成任何子进程之前。 在主函数之前执行此检查 调用NSApplicationMain函数。为了更加安全,您可以 在应用程序运行时定期重复此检查。
显然,无需用户互动即可验证收据。出于安全考虑,甚至建议在自己的服务器上进行此操作。因此,只要收据由App Store服务器验证,就不需要收据刷新请求。