Отражает ли отмена iOS-покупки в приложении на NSBundle.mainBundle(). AppStoreReceiptURL

Допустим, пользователь iOS покупает подписку на автоматическое продление. Я знаю что NSBundle.mainBundle().appStoreReceiptURL показывает какую-то цифровую квитанцию, которую я могу использовать для проверки покупки и продолжения подписки.

Затем через некоторое время пользователь отменяет подписку.

Вопросы:

Когда пользователь отменяет подписку,

  1. Есть ли NSBundle.mainBundle().appStoreReceiptURL отразить эту отмену сразу?

Я скептически отношусь к этому, потому что NSBundle.mainBundle() используется для поиска того, что хранится локально в приложении. Если пользователь отменяет подписку, перейдя в настройки ОС, и это отправит какой-либо тип уведомлений на Apple Server, то Apple Server должен каким-то образом уведомить приложение.

  1. Если как-то NSBundle.mainBundle().appStoreReceiptURL отражает отмену сразу. Как Apple это делает? Или мне нужно реализовать протокол для получения информации об отмене?

  2. Если на самом деле мне нужно запустить протокол, запускаются ли другие приложения при каждом запуске приложения?

1 ответ

Решение

Пользователь не отменяет подписку как таковую. Они отключают продление, поэтому подписка не будет продлена по окончании текущего периода. Если автоматическое продление по-прежнему включено, то новая квитанция в приложении будет добавлена ​​в квитанцию ​​на следующий период, но теперь этого не произойдет, поэтому ваше приложение должно определить, что в данный момент нет активной подписки, и удалить доступ к содержание / функции в зависимости от обстоятельств.

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

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

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