通过应用内购买(自动续订)购买产品后,我点击服务器上的 API 来提供购买信息。
打API如何知道产品是新的?
当用户取消该订阅时,如何知道?
Swift 3:为了让您检测到用户何时取消订阅,您需要执行以下操作;
- 下载应用程序收据
- 验证收据,以便您可以获取包含所有应用内购买和订阅字典的 json
-
现在,在每张收据中,字典中都有一个字段,称为取消日期如果这是订阅购买,并且不适用于其他应用内购买。如果此值为 nil,则不会发生取消,但如果此值包含取消日期,则确实发生了取消,根据苹果的说法:
取消日期对于 Apple 客户支持取消的交易,取消的时间和日期。
对待取消的收据就像从未进行过任何购买一样。
然后下面的链接解释了您可以在收据中使用的所有字段;
https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html
代码示例:
// Create receipt request
let receiptRefreshRequest = SKReceiptRefreshRequest()
// Get the receiptUrl from the main bundle
let receiptUrl = Bundle.main().appStoreReceiptURL
//If the receipt file exist on local device
if (receiptUrl as NSURL?)?.checkResourceIsReachableAndReturnError(nil) == true{
// Get the file as data
let receipt: Data = try! Data(contentsOf: receiptUrl!)
}
现在,您将收据发送到苹果服务器,以按照苹果的建议使用您的服务器进行验证。在收到验证回调后,您可以检查取消日期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)