收据日期与沙盒持续时间不匹配

The receipt date does not match to the sandbox duration

我的应用有自动更新订阅。我试图测试订阅的正确工作流程。根据 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 分钟后更新?

这是因为促销价。如果订阅有介绍价,则订阅期将是错误的。在我的例子中,我删除了介绍性价格,沙盒用户的持续时间开始为 3 分钟。