// 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为您的应用提供了用户's local receipt and a “shared secret” generated in iTunes Connect, returns a JSON object of the user'的购买历史记录,包括当前的订阅信息 . More Information check this link
2 回答
Swift 3: 为了让您检测用户何时取消订阅,您需要执行以下操作:
下载应用收据
验证收据,以便您可以返回包含所有应用内购买和订阅词典的json
现在在每张收据中,如果这是订阅购买,则字典中有一个名为 cancellation_date 的字段,否则不能用于其他应用内购买 . 如果这是零,那么没有取消,但如果它有一个包含取消日期的值,那么取消确实发生了,并根据苹果:
Cancellation Date 对于Apple客户支持取消的交易,取消的时间和日期 .
对已取消的收据进行处理,就像没有进行任何购买一样 .
然后,下面的链接说明了您可以在收据中使用的所有字段;
https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html
代码示例:
现在您将收据发送到苹果服务器,以使用您的服务器验证它作为苹果推荐 . 从验证中获得回调后,您将检查取消日期 .
Apple不提供内置于iOS或REST API中的任何内容,可为您提供简单的订阅详细信息,也不存在任何可以在续订或取消方面收听和回复的回调 . Apple为您的应用提供了用户's local receipt and a “shared secret” generated in iTunes Connect, returns a JSON object of the user'的购买历史记录,包括当前的订阅信息 . More Information check this link