自动续订订阅的到期日期

时间:2017-11-01 10:46:37

标签: swift in-app-purchase

对订阅的到期日期有疑问。我有以下代码与工作没有错误我验证收据和我有一点问题。我的失效日期不会改变。因此,如果我一次又一次地购买订阅,我的失效日期保持不变,而且我总是属于else条款,因为失效日期比“新”日期“旧”。

我做错了什么?

private func complete(transaction: SKPaymentTransaction) {

        let receiptValidator = ReceiptValidator()
        let result = receiptValidator.validateReceipt()

        switch result {
        case let .success(receipt):
            guard let purchase =  receipt.inAppPurchaseReceipts?.filter({ $0.productIdentifier == IAPProducts.autoRenewable.rawValue }).first else {
                NotificationCenter.default.post(name: Notification.Name(transaction.payment.productIdentifier), object: nil)
                return
            }

            if purchase.subscriptionExpirationDate?.compare(Date()) == .orderedDescending {
                print("expirationDate: \(purchase.subscriptionExpirationDate!)")
                print(" now's date: \(Date())")
            // true clause stuff
            } else {

                // false clause stuff
                print("Subscription has ended")
            }

            // other stuff

        case let .error(error):
            print("receipt is invalid")
            print(error.localizedDescription)
        }

        paymentQueue.finishTransaction(transaction)
    }

所以控制台输出如下:

  

expirationDate:2017-11-01 09:08:11 +0000
  现在的日期:2017-11-01   10:35:11 +0000

我想念什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

哦,我发现我的沙盒用户做了太多的交易。所以我创建另一个,现在代码按预期工作。