对订阅的到期日期有疑问。我有以下代码与工作没有错误我验证收据和我有一点问题。我的失效日期不会改变。因此,如果我一次又一次地购买订阅,我的失效日期保持不变,而且我总是属于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
我想念什么?
谢谢!
答案 0 :(得分:0)
哦,我发现我的沙盒用户做了太多的交易。所以我创建另一个,现在代码按预期工作。