В функции покупки приложения включена моя система архитекторов.
Моя покупка в приложении включает в себя следующие компоненты:
Клиент : Мое мобильное приложение.
Сервер : Моя серверная система.
Apple's Store : магазин Apple, который подключается к iTunes, настроен для покупки в приложении.
Hook statusUpdateNotification : A statusUpdateNotification
- это межсерверная служба уведомлений для автоматически обновляемых подписок. Уведомление указывает статус подписки на момент отправки уведомления. ссылка : https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html#//apple_ref/doc/uid/TP40008267-CH7-SW6
База данных : Моя система баз данных.
Текущий рабочий процесс :
- Шаг 1 : запрос мобильного приложения на оплату в магазин Apple через
ios's Storekit
и ituneconnect пользователя, когда пользователь покупает товар в приложении.
- Шаг 2 (1) : магазин Apple взимается с пользователя, если
product_id
совпадает с магазином и возвращает мобильному приложению счет.
- Шаг 3 (1) : мобильное приложение отправляет этот счет на сервер с аутентификацией, чтобы сервер знал, кто является покупателем. Сервер проверит счет в магазине Apple на шаг 5 (1) , если счет действителен, магазин Apple ответит, уведомив, что этот счет действителен ( шаг 4 (1) ) и сервер обновит этот продукт для пользователя, более того, сервер сохранит уникальный
bill_id
и user_id
для возобновления в следующий раз - -------- шаг 6 (1) . И сервер ответит клиенту о выходе из процесса ( шаг пустой номер ) => первый способ покупки.
В решении этот пункт является возобновляемым, система будет использовать Hook statusUpdateNotification system.
Шаг 1 : то же действие, что и выше.
Шаг 2 (2) : магазин Apple будет доставлять объекты JSON через HTTP POST на ваш сервер для ключевых событий подписки, перечисленных в Таблица 6-3 . Моя проблема начинается здесь. . Apple отправит на хук с latest_receipt_info
, и я могу выполнить синтаксический анализ, чтобы получить original_transaction_id
, но, если у него будет только original_transaction_id
, моя система не сможет узнать, кому нужно обновить, поэтому мне нужно запросить из базы данных с помощью original_transaction_id
и получить user_id
сохранено ( шаг 3 (2) ) до ( шаг 3 (1) , если повезет , потому что, если хук получен квитанция от Apple до того, как клиент отправит счет на сервер, я не знаю этого original_transaction_id
для user_id
.)
Если Hook может получить user_id
из базы данных с original_transaction_id
, мой процесс покупки будет успешным. В противном случае моя система выйдет из строя, потому что я не могу знать, что пользователь обновит купленный продукт.
Я не уверен, когда Apple Store отправит счет моему клиенту и когда он отправит на крючок. Это отстой.
Мой вопрос : Мое решение точно? У кого-нибудь есть решение, чтобы улучшить эту проблему? благодарю вас. Пожалуйста, предоставьте запрос принять четкую информацию, если вы не понимаете, мое описание.