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