【发布时间】:2017-11-01 10:46:37
【问题描述】:
对订阅的到期日期有疑问。我有以下代码,在我验证收据和遇到小问题的地方没有错误。我的到期日期没有改变。因此,如果我一次又一次地购买订阅,我的到期日期保持不变,我总是落入 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)
}
所以控制台输出是这样的:
有效期:2017-11-01 09:08:11 +0000
现在的日期:2017-11-01 10:35:11 +0000
我错过了什么?
谢谢!
【问题讨论】:
标签: swift in-app-purchase