我目前正在测试在应用程序内购买在沙箱中看到,如果用户订阅当前处于活动状态或已过期。我刚刚订阅一个月,收据说,订阅马上过期。该orginalPurchaseDate和ExpiryDate看起来都错了。我怎么能确定JSON得到回是是正确的,其历史。我的expiryDate比较原始的购买日期,以确定是订阅仍然有效。
func checkIfSubscriptionIsActive() {
IAPManager.shared.validatePurchaseReceipt { (pReceipt) in
self.receipt = pReceipt
let expiryDate = self.receipt.last.map { $0.expiresDate}!.skTodate
let originalPurchaseDate = self.receipt.last.map { $0.originalPurhaseDate}!.skTodate
print("Latest Receipt: \(self.receipt.last)")
if expiryDate?.compare(originalPurchaseDate!) == .orderedDescending {
print("Subscription is expired")
} else {
print("Subscription is still active")
}
}
}
在这里我的日志
最新收据:可选(Vinylly.IAPReceiptInfo(数量: “1”,tansactionID: “1000000500500768”,产品编号: “com.myApp.skLLC.autoRenewableSubscription”,originalPurhaseDate: “2019年1月17日11时五十〇分53秒ETC / GMT” ,isTrialPeriod: “假”,webOrderLineItem: “1000000042609588”,expiresDate: “2019年2月6日15时55分21秒ETC / GMT”))
每个苹果的文档,一个月的订阅将在5分钟内,当您在沙箱环境中测试其到期。如果你想要写/测试一些解决这个代码,尽量在5分钟内做。