swift - 自动续订订阅的到期日期

标签 swift in-app-purchase

对订阅的到期日期有疑问。我有以下代码,在验证收据和遇到小问题的地方没有错误。我的有效期没有改变。因此,如果我一次又一次地购买订阅,我的到期日期保持不变,并且我总是陷入 else 条款,因为到期日期比"new"日期“旧”。

我做错了什么?

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
now's date: 2017-11-01 10:35:11 +0000

我错过了什么?

谢谢!

最佳答案

哦,我发现我的沙箱用户进行了太多交易。因此,我创建了另一个代码,现在代码可以按预期工作。

关于swift - 自动续订订阅的到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47053096/

相关文章:

ios - AddCardViewController 完成后不会消失

ios - appStoreReceiptURL 错误

ios - 核心数据同步的应用内购买?

ios - 应用如何将帐户与应用内购买订阅绑定(bind)?

Swift 三重箭头符号

ios - 如何更改键盘的宽度

ios - Swift:根据其中的 UICollectionView 的大小扩展 UITableViewCell 高度

具有泛型方法的 Swift 协议(protocol) : invalid redeclaration of implementation

Android:购买后消费产品(应用内计费)

ios - iPhone In App Purchase 提示在新用户的全新设备上登录 addTransactionObserver