代码之家  ›  专栏  ›  技术社区  ›  Alex

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

  •  0
  • Alex  · 技术社区  · 6 年前

    我的应用有自动更新订阅。我尝试测试订阅的正确工作流。根据WWDC 2018: enter image description here

    我创建了一个为期一周的新订阅。我创建了一个新的沙盒用户,并尝试激活我的新订阅。代码如下:

    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
    

    但我的订阅只有一周。

    enter image description here

    为什么会这样?是否有可能收据的日期是一个小时,但实际上,应用商店在3分钟后更新?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alex    6 年前

    这是因为入门价。如果订阅有一个入门价,订阅期将是错误的。在我的例子中,我删除了一个入门价,沙盒用户的持续时间开始为3分钟。

    推荐文章