Как / когда информация IAP добавляется в квитанции приложения iOS? - PullRequest
1 голос
/ 14 октября 2019

Короткая версия:

Мое бесплатное приложение для iOS отправляет квитанцию ​​приложения на мой сервер для проверки и проверки, имеют ли пользователи право на вводные предложения по подписке. Я заметил, что есть много квитанций без IAP внутри. Это будет означать, что многие пользователи годами пользуются бесплатной пробной версией, что маловероятно.

Итак, когда информация IAP добавляется в квитанции?


Длинная версия:

Мое приложение былов течение нескольких лет предлагается в iOS App Store с использованием Freemium Model : пользователь может бесплатно загрузить приложение и протестировать его в течение неограниченного времени с ограниченными функциями. не расходуемые покупки в приложении можно использовать для снятия этих ограничений функций.

Теоретически пользователи могут использовать приложение неограниченное время без каких-либо покупок, просто используя набор тестовых функций. Однако из-за ограничений это крайне маловероятно.

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

Я заметил, что есть много квитанций без IAP внутри. Даже для квитанций с original_app_version s, которым несколько лет. Это будет означать, что многие пользователи используют бесплатную пробную версию в течение многих лет, что весьма маловероятно (из-за очень ограниченного набора функций).

Так когда же информация IAP добавляется в квитанции?

Новая версия приложения отправляет квитанцию ​​на мой сервер при первом запуске. Возможны три варианта:

  1. Приложение никогда ранее не использовалось, и это первая установка приложения за всю историю.
    • original_app_version == текущая версия
    • Конечно, при первом запуске нет IAP, так что ничего необычного в этом
  2. Это обновленноеболее ранней версии, которая была установлена ​​до
    • original_app_version <текущая версия </li>
    • В App / App Store достаточно времени для включения возможных IAP в квитанцию ​​
  3. Использовалась более ранняя версия приложения, но она была удалена. Теперь текущая версия была переустановлена ​​
    • original_app_version <текущая версия </li>
    • Поскольку она только что была установлена, возможно, что IAP еще не включены в квитанцию? Case.

Итак, здесь интересны только случаи 2. и 3. Почему предыдущие 2 неиспользуемые IAP должны быть сохранены в 2-м случае, так как приложение установлено и работает в течение длительного времени?

С другой стороны, маловероятно, что тысячи предыдущихпользователи теперь переустановили мое приложение и, таким образом, привели к случаю 3. Даже если это действительно так, может ли приложение сделать ручной запуск магазина, чтобы добавить предыдущие IAP в квитанции? Или пользователь должен сначала восстановить предыдущие покупки?


РЕДАКТИРОВАТЬ:

Насколько я понимаю, документы Appel это делаетНе имеет значения, какая информация хранится в квитанции, которую можно найти на устройствах. Когда я загружаю эту квитанцию ​​на свой сервер, она действует как токен при отправке в Apple для проверки.

Apple, чем отвечает с последней доступной информацией о квитанции (если квитанция / токен действительна)) открытым текстом.

Таким образом, на самом деле не должно иметь значения, сколько времени приложение было установлено на устройстве или было ли это новой или повторной установкой: Apple предоставляет последнюю доступную информацию. Таким образом, если когда-либо был IAP, он должен быть включен в возвращаемую информацию. Правильно?

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

Есть ли другие объяснения?

1 Ответ

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

Andrei Herford!

Ваша информация IAP добавляется в квитанции после того, как пользователь приобрел вашу IAP.

Если массив latest_receipt_info пуст, это означает, что пользователь никогда не покупал подписку.

Далее, если у вас есть расходные материалы, вы должны проверить массив in_app. Если этот массив пуст, это означает, что пользователь никогда не покупал расходные материалы. Чтобы проверить, были ли приобретены определенные непотребляемые товары или нет, вам нужно найти элемент в массиве in_app и сравнить product_id.

И не имеет значения, какая версия приложения у пользователя. Не расходные материалы и подписки хранятся в квитанции навсегда.

Кстати, как вы проверяете квитанцию? Существует параметр exclude-old-transactions, он должен быть false.

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

У нас есть служба, которая проверяет квитанции и обрабатывает все ваши подписки, поэтому мы рекомендуем вам прочитать эту статью в нашем блоге. ,Также вы можете написать нам прямо в нашем онлайн чате. Спасибо!

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