Как обработать окончание подписки на автообновление в течение срока службы - PullRequest
0 голосов
/ 24 февраля 2020

Если у пользователя запущена еженедельная подписка на автоматическое продление, текущая неделя которой истекает в 4:00 (затем она возобновится), и пользователь находится в приложении, например, с 3:55 до 4:10, как Вы предполагаете справиться с этим?

Я заметил, что paymentQueue (_: updatedTransactions :) не будет срабатывать в течение жизненного цикла приложения (может быть, я ошибаюсь?), и поэтому я не могу получить новое обновление, которое сообщит мне, что пользователь все еще подписан.

В этом случае нужно ли мне вызывать покупку для восстановления, чтобы принудительно обнаружить обновление, или я должен считать, что пользователь все еще подписан, пока приложение не будет уничтожено (и так при следующем запуске будет запущен paymentQueue)? Или, может быть, третье решение?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Получил официальный ответ от Apple StoreKit Engineer:

Apple считает, что это крайний случай и предлагает не обрабатывать истечение срока подписки в режиме реального времени (если это возможно).

Это означает, что если у вас есть подписка, которая превращает ваших пользователей в пользователей Premium, просто сохраняйте флаг Premium в течение всего жизненного цикла приложения (до тех пор, пока приложение не будет убито пользователем или системой).

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

1 голос
/ 24 февраля 2020

Вы можете сделать это, зарегистрировав таймер и а) запустить восстановление или б) перезапустить приложение или c) выполнить проверку на вашем сервере, который обрабатывает уведомления от сервера к серверу.

Я не знаю не знаете, какое приложение вы разрабатываете, и насколько важно, чтобы пользователи не могли использовать приложение дольше, чем срок их подписки, но заставляли пользователя вводить свои учетные данные без его явного согласия (пункт а) или перезапуск приложения (пункт b) будет плохим для пользователя. Так что, если это важно, то вам, вероятно, нужно использовать межсерверные уведомления. В противном случае позвольте пользователю использовать ваше приложение до тех пор, пока он не закроет его, и подтвердите получение при следующем запуске на вашем устройстве.

Уведомления от сервера к серверу - это служба для автоматически обновляемых подписок. App Store отправляет на ваш сервер уведомления об изменениях статуса подписки в режиме реального времени.

Подробнее см. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...