如何获取autoRenewable订阅的过期日期

时间:2018-06-04 11:12:37

标签: ios swift in-app-purchase

任何人都可以告诉我如何获得自动更新订阅的过期日期。 实际上我必须检查订阅日期后订阅是否仍然有效。请帮助我。

2 个答案:

答案 0 :(得分:1)

我会向你推荐这个简单轻巧的框架:

https://github.com/bizz84/SwiftyStoreKit

let appleValidator = AppleReceiptValidator(service: .production, sharedSecret: "your-shared-secret")
SwiftyStoreKit.verifyReceipt(using: appleValidator) { result in
    switch result {
    case .success(let receipt):
        let productId = "com.musevisions.SwiftyStoreKit.Subscription"
        // Verify the purchase of a Subscription
        let purchaseResult = SwiftyStoreKit.verifySubscription(
            ofType: .autoRenewable, // or .nonRenewing (see below)
            productId: productId,
            inReceipt: receipt)

        switch purchaseResult {
        case .purchased(let expiryDate, let items):
            print("\(productId) is valid until \(expiryDate)\n\(items)\n")
        case .expired(let expiryDate, let items):
            print("\(productId) is expired since \(expiryDate)\n\(items)\n")
        case .notPurchased:
            print("The user has never purchased \(productId)")
        }

    case .error(let error):
        print("Receipt verification failed: \(error)")
    }
}

在SwiftyStoreKit-Documentation

中找到

我希望能帮到你。 如果,如果你能接受我的答案那就太好了。)

答案 1 :(得分:0)

首先,您需要在Apple服务器中验证您的base 64收据。如果Apple服务器使用值为0的状态键进行响应,那么您将找到latest_receipt_info密钥。此密钥包含有关自动续订订阅的所有信息。您可以在expires_date密钥中获取到期日期信息。