IAP Handling Multiply Users / Original Transaction ID

Я чувствую, что эта тема обсуждается снова и снова, но я не могу найти ни единого правильного способа справиться с этим. Проблема:

-> Автоматически продлеваемая подписка (ежемесячно):
-> Одна учетная запись iTunes
-> Несколько учетных записей пользователей приложения
-> КАК ОПРЕДЕЛИТЬ, КТО ВЛАДЕЕТ ПОДПИСКОЙ Пример

использования:

  1. UserA покупает подписку (я создаю запись на сервере "app_userId, original_transaction_id, web_order_id")
  2. UserA выходит из системы (или удаляет приложение и т. Д.)
  3. UserB входит в систему (та же учетная запись iTunes) -> через несколько недель истекает подписка
  4. Подписка автоматически обновляется -> UserB получает обновление транзакции - я использую original_transaction_id, чтобы проверить, действительно ли эта подписка принадлежит UserB (в данном случае: НЕ) -> именно то, что мне нужно знать. (только userA может использовать подписку под этой учетной записью iTunes)

Правильно ли я понимаю, что в случае возобновляемой подписки: -> original_transaction_id никогда не меняется (хотя я видел билеты stackru, где люди утверждают, что это так! Или это происходит после восстановления или на другом устройстве... -> лично, тестирование на другом устройстве (восстановить) -> пока не меняется... Но может кто-нибудь подтвердить, что никогда не изменится?

-> web_order_line_item_id - он может только сказать мне, кому принадлежит "текущая активная" подписка (при условии, что я также храню эту информацию на сервере) - но как только подписка возобновляется -> это бесполезно (новое для каждого продления).

Я уже больше недели потратил на эту тему и все еще борюсь:) Это безумие...

1 ответ

Документы Apple по original_transaction_id подразумевают, что он не меняется при обычной покупке, восстановлении или продлении, но изменится при новой покупке.

Для прошлого проекта я вставил «тихое» восстановление в рабочий процесс покупки перед фактической покупкой, чтобы предварительно проверить активную подписку, поскольку было возможно, что пользователь не выполнял восстановление при переустановке приложения. Если он был активен, я закорачивал покупку с предупреждением о том, что подписка уже активна.

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