Дата поступления не соответствует длительности песочницы.

Мое приложение имеет автоматически возобновляемую подписку. Я попытался проверить правильность рабочего процесса подписки. Согласно 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)")

Я проверяю дату и время на сервере. Результат один и тот же - я всегда получаю receiveDate как: текущее время + один час:

XXX.swift validateTimeWithServer(result:) serverTime:2018-07-11 13:18:16 +0000, receiptDate:2018-07-11 14:18:16 +0000

Но моя подписка всего на одну неделю.

Почему это случилось? Возможно ли, что дата получения составляет один час, но на самом деле AppStore продлевает ее через 3 минуты?

1 ответ

Решение

Это из-за вступительной цены. Если подписка имеет вступительную цену, период подписки будет неправильным. В моем случае я удалил начальную цену, и продолжительность для пользователя песочницы стала 3 мин.

Другие вопросы по тегам