Автообновляемая подписка IAP возобновляется после истечения срока действия в песочнице

Согласно документации Apple...

В течение 24 часов до истечения срока подписки App Store начинает пытаться автоматически продлить ее. App Store делает несколько попыток автоматического продления подписки в течение определенного периода времени, но в конечном итоге останавливается, если слишком много неудачных попыток.

Я запускаю сценарий, который определяет, истек ли срок подписки, отправляя квитанцию ​​в Apple, а затем проверяю ответ, чтобы убедиться, что он продлен. Если этого не произошло, и текущая дата истечения срока подписки наступает раньше времени, когда я запускаю сценарий, я принимаю его как просроченную подписку, поскольку я предполагаю, что он был бы обновлен в предыдущие 24 часа (или эквивалент незадолго до этого в песочнице). среда).

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

Например, срок подписки истекает "2017-02-08T15:32:41Z", поэтому я ожидаю, что Apple покажет обновление до этого времени. Однако это не так, я отмечаю как просроченный. При следующем запуске сценария появляется обновление с датой истечения срока действия "2017-02-08T15:39:55Z", то есть более чем через 7 минут после предыдущей даты истечения срока, что показывает, что обновление произошло через 2 минуты после предыдущей даты истечения срока действия. (с учетом 5-минутной продолжительности подписки в песочнице). Есть много примеров этого.

У меня вопрос, как я должен учитывать это поведение в производстве? Это происходит? Должен ли я вести себя так, как если бы срок действия подписки истек, поскольку срок действия истек? Или я должен дать больше времени, так как поведение песочницы противоречит документации.

1 ответ

Решение

Отвечая на мой собственный вопрос. Из документации...

Обновление происходит с ускоренной скоростью, и автоматически обновляемые подписки обновляются максимум шесть раз в день. Это позволяет вам проверить, как ваше приложение обрабатывает продление подписки, истечение срока подписки и историю подписки, которая включает пробелы.

Из-за ускоренного истечения срока действия и продления срок действия подписки может истечь до того, как система начнет пытаться продлить подписку, оставив небольшой промежуток в периоде подписки. Такие ошибки также возможны в производстве по разным причинам - убедитесь, что ваше приложение обрабатывает их правильно.

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