IAP Handling Multiply Users / Original Transaction ID
Я чувствую, что эта тема обсуждается снова и снова, но я не могу найти ни единого правильного способа справиться с этим. Проблема:
-> Автоматически продлеваемая подписка (ежемесячно):
-> Одна учетная запись iTunes
-> Несколько учетных записей пользователей приложения
-> КАК ОПРЕДЕЛИТЬ, КТО ВЛАДЕЕТ ПОДПИСКОЙ Пример
использования:
- UserA покупает подписку (я создаю запись на сервере "app_userId, original_transaction_id, web_order_id")
- UserA выходит из системы (или удаляет приложение и т. Д.)
- UserB входит в систему (та же учетная запись iTunes) -> через несколько недель истекает подписка
- Подписка автоматически обновляется -> UserB получает обновление транзакции - я использую original_transaction_id, чтобы проверить, действительно ли эта подписка принадлежит UserB (в данном случае: НЕ) -> именно то, что мне нужно знать. (только userA может использовать подписку под этой учетной записью iTunes)
Правильно ли я понимаю, что в случае возобновляемой подписки: -> original_transaction_id никогда не меняется (хотя я видел билеты stackru, где люди утверждают, что это так! Или это происходит после восстановления или на другом устройстве... -> лично, тестирование на другом устройстве (восстановить) -> пока не меняется... Но может кто-нибудь подтвердить, что никогда не изменится?
-> web_order_line_item_id - он может только сказать мне, кому принадлежит "текущая активная" подписка (при условии, что я также храню эту информацию на сервере) - но как только подписка возобновляется -> это бесполезно (новое для каждого продления).
Я уже больше недели потратил на эту тему и все еще борюсь:) Это безумие...
1 ответ
Документы Apple по original_transaction_id подразумевают, что он не меняется при обычной покупке, восстановлении или продлении, но изменится при новой покупке.
Для прошлого проекта я вставил «тихое» восстановление в рабочий процесс покупки перед фактической покупкой, чтобы предварительно проверить активную подписку, поскольку было возможно, что пользователь не выполнял восстановление при переустановке приложения. Если он был активен, я закорачивал покупку с предупреждением о том, что подписка уже активна.