首页 > 解决方案 > 收货日期与沙盒持续时间不匹配

问题描述

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

标签: iosswiftsubscriptionauto-renewable

解决方案


这是因为入门价格。如果订阅有介绍价,则订阅期将是错误的。就我而言,我删除了一个介绍性价格,沙盒用户的持续时间开始为 3 分钟。


推荐阅读