针对应用内购买的自动续订订阅

Dev*_*Dev 2 in-app-purchase ios in-app-subscription

从应用程序内购买(自动更新)购买产品后,我点击服务器上的API来提供购买信息.

如何知道该产品是否适用于推出API?

当用户取消该订阅时,如何知道?

Jad*_*Jad 8

Swift 3:为了让您检测用户何时取消订阅,您需要执行以下操作:

  1. 下载应用收据
  2. 验证收据,以便您可以返回包含所有应用内购买和订阅词典的json
  3. 现在,在每个收据中,如果这是订阅购买,则字典中有一个名为cancellation_date的字段,否则不能用于其他应用内购买.如果这是零,那么没有取消,但如果它有一个包含取消日期的值,那么取消确实发生了,并根据苹果:

    取消日期 对于Apple客户支持取消的交易,取消的时间和日期.

    对已取消的收据进行处理,就像没有进行任何购买一样.

然后,下面的链接说明了您可以在收据中使用的所有字段;

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!)


  }
Run Code Online (Sandbox Code Playgroud)

现在您将收据发送到苹果服务器,以使用您的服务器验证它作为苹果推荐.从验证中获得回调后,您将检查取消日期.