通过应用内购买(自动更新)购买产品后,我点击服务器上的 API 以提供购买信息。
如何知道该产品是针对 API 更新的?
当用户取消该订阅时,如何知道?
通过应用内购买(自动更新)购买产品后,我点击服务器上的 API 以提供购买信息。
如何知道该产品是针对 API 更新的?
当用户取消该订阅时,如何知道?
Swift 3:为了让您检测用户何时取消订阅,您需要执行以下操作;
现在,如果这是订阅购买,则在每张收据中都有一个名为cancellation_date的字典中的字段,否则不能用于其他应用内购买。如果这是 nil 则没有发生取消,但如果它的值包含取消日期,则确实发生了取消,并且根据苹果:
取消日期 对于被 Apple 客户支持取消的交易,取消的时间和日期。
将取消的收据视为从未购买过的收据。
然后下面的链接解释了您可以在收据中使用的所有字段;
代码示例:
// 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!)
}
现在您将收据发送到苹果服务器,以按照苹果推荐的方式使用您的服务器进行验证。从验证中获得回调后,您检查取消日期。
Apple 不提供任何内置于 iOS 或 REST API 来为您提供简单的订阅详细信息,也没有任何您可以在续订或取消方面收听和响应的回调。Apple 确实有一个 API,当给定用户的本地收据和在 iTunes Connect 中生成的“共享密钥”时,它会返回一个 JSON 对象,其中包含用户对您的应用程序的购买历史记录,包括他们当前的订阅信息。 更多信息请查看此链接