我的应用程序具有自动续订订阅。我试图测试订阅的正确工作流程。根据 WWDC 2018:
我创建了一个为期一周的新订阅。我创建了一个新的沙盒用户,并尝试激活我的新订阅。这是代码:
guard let httpResponce = responce as? HTTPURLResponse,
let contentType = httpResponce.allHeaderFields["Date"] as? String,
let expirationDate = self.parcedReceipt?.inAppPurchaseReceipt?.subscriptionExpirationDate,
let serverDate = self.parseDateAndTime(getResDate: contentType) else {
result(false, ReceiptError.unexpectedError.localizedDescription)
return
}
self.saveDateAndTime(dateForSave: serverDate)
self.ls.pmsg("serverTime:\(serverDate), receiptDate:\(expirationDate)")
我用服务器验证日期和时间。结果是一样的-我总是得到receiptDate,例如:当前时间+一小时:
XXX.swift validateTimeWithServer(result:) serverTime:2018-07-11 13:18:16 +0000, receiptDate:2018-07-11 14:18:16 +0000
但我的订阅只有一周。
为什么会这样?收据日期是否可能是一小时,但实际上 AppStore 会在 3 分钟后更新?