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

时间:2016-06-21 12:48:29

标签: ios in-app-purchase in-app-subscription

从应用内购买(自动续订)购买产品后,我点击了服务器上的API来提供购买信息。

如何知道该产品是否符合API的新标准?

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

2 个答案:

答案 0 :(得分:8)

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

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

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

    对待已取消的收据,就像没有购买一样。

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

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

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

答案 1 :(得分:1)

Apple不提供内置于iOS或REST API中的任何内容,为您提供简单的订阅详细信息,也没有任何回调可供您在续订或取消时收听和回复。 Apple确实有一个API,当给定用户的本地收据和iTunes Connect中生成的“共享密钥”时,会返回用户的应用程序购买历史记录的JSON对象,包括其当前的订阅信息。 More Information check this link