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

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

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

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

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

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

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


person jeh    schedule 10.02.2017    source источник


Ответы (1)


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

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

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

person jeh    schedule 10.02.2017
comment
Зная, что может быть пробел, как вы с этим справились? - person sarunw; 20.03.2018
comment
@sarunw Вы можете создать своего рода буфер на день или два, в зависимости от того, что вам удобно. Например, если срок подписки истек сегодня, пусть она останется в состоянии подписки до завтра или следующего дня. - person adam; 16.08.2018