苹果的文件似乎没有提到这一点。因此,如果用户取消了在免费试用期内购买的自动续订订阅,我们如何检测?
在应用商店收据JSON中,此字段为:is_trial_period
。但这是为了表明免费试用期是否已结束。
我唯一能想到的就是这个NSBundle.mainBundle().appStoreReceiptURL?.path
,如果它为nil,则表示用户尚未在免费试用期内订阅或取消订阅。但是对于沙盒测试,无法在免费试用期内取消以测试此方案。
有人对此有扎实的知识吗?
最佳答案
为了支持自动续订,您的应用需要定期将从NSBundle.mainBundle().appStoreReceiptURL?.path
获得的应用收据提交到Apple's receipt validation service。
该服务的JSON响应中包含latest_receipt_info
数组。
通过检查此阵列,您将能够确定当前事件的订阅。
如果用户在免费试用期结束前关闭了自动续订,那么latest_receipt_info
在免费试用结束日期之后将不包含带有expires_date
的购买交易
严格来说,这意味着您无法“检测到取消”,因为没有“取消”;免费试用期结束后就没有续约了。
关于ios - 如何在免费试用期内检测用户是否取消了自动更新订阅?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40271402/