Подписка для iOS: как обработать уведомление INTERACTIVE_RENEWAL через 10 минут после INITIAL_BUY? - PullRequest
0 голосов
/ 28 октября 2019

Мой сервер получил INTERACTIVE_RENEWAL уведомление о (неподдерживаемой) 6-месячной подписке из iOS App Store всего через 10 минут после получения INITIAL_BUY уведомления о 3-месячной подписке.

Как мне справиться с этим?


Длинная история:

Месяц назад я выпустилновая версия моего приложения, представляющая автоматическое продление подписки. Я создал различные продукты для подписки, например,

  • com.my.app.subscripton.3months
  • com.my.app.subscripton.6months
  • com.my.app.subscripton.12months

Финальная версия приложения, выпущенная в магазине, предлагает только подписки 3 месяца и 12 месяцев . Идентификатор подписки на 6 месяцев все еще существует в коде, но нет элемента пользовательского интерфейса для покупки этой подписки (дважды проверено!)

Мой сервер теперь получил следующие App Store Update Notification сообщения в течение 10 минут:

  • 02: 00 - INITIAL_BUY продукта com.my.app.subscripton.3months. Истекает в 2020-01-28 02: 00: 00
  • 02: 10 - INTERACTIVE_RENEWAL продукта com.my.app.subscripton.6months. Срок действия истекает в 2020-04-28 02: 10: 00

Как с этим справиться? Очевидно, что бессмысленно, чтобы 3-месячная подписка возобновлялась через 10 минут. ..

В соответствии с документами INTERACTIVE_RENEWAL означает:

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

Поскольку пользовательский интерфейс приложений не предоставляет возможность приобрести 6-месячную подписку, это должно быть сделано account settings. Но где я могу найти функцию покупки в настройках учетной записи?

Даже если такая функция существует где-то в настройках, как можно продлить подписку на 3 месяца на 6 месяцев? через 10 минут?


РЕДАКТИРОВАТЬ: Информация из уведомления верна. Я повторно проверил квитанцию, и магазин ответил последней информацией о квитанции, которая включает в себя предметы IAP (подписка на 3 и 6 месяцев), приобретенные в течение 10 минут.

Таким образом, информация верна, но, очевидно, не имеет смысла ...

Ответы [ 2 ]

1 голос
/ 28 октября 2019

В App Store страница управления подписками пользователи смогут видеть все параметры продукта для группы подписок, на которую они подписаны (см. Изображение).

Это ненеобычно для более опытных пользователей iOS переходить на эту страницу вскоре после покупки подписки, чтобы увидеть, есть ли доступный вариант по более низкой цене.

Что касается обработки этих событий, что вы пытаетесь сделать именно? Все, что вам действительно нужно, чтобы определить, подписан ли кто-то, это product_id и expiration_date. Если возможно, вы можете записать все тело события где-нибудь (на случай, если оно понадобится вам позже), а затем обновить свою пользовательскую запись, указав все нужные вам значения из события. Это могут быть:

  • Уровень доступа (большинство приложений имеют один уровень доступа, например, «премиум»)
  • Идентификатор продукта
  • Срок действия
  • Авто-обновление статуса

При такой настройке фактический тип события становится неактуальным, вы просто обновляете нужные поля значениями из последнего события.

enter image description here

0 голосов
/ 28 октября 2019

Это снова Апфуд. Мы используем Apple Notifications только для запуска дополнительной проверки квитанции. Как справиться в вашем случае? Выполните проверку квитанции и проверьте, активна ли подписка.

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

Подробнее об уведомлениях: https://blog.apphud.com/subscriptions-notifications/

...