Является ли Apple автоматически продлевает рабочий процесс подписки?
В функции покупки приложения есть моя система архитекторов.
Моя покупка в приложении включает в себя такие компоненты, как:
Клиент: Моё мобильное приложение.
Сервер: Моя серверная система.
Магазин Apple: Магазин Apple, который подключается к iTunes, настроен для покупки в приложении.
Статус хукаОбновитьОбновление: A statusUpdateNotification
это серверная служба уведомлений для автоматически обновляемых подписок. Уведомление указывает статус подписки на момент отправки уведомления. Ссылочная ссылка: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html
База данных: Моя система баз данных.
Текущий рабочий процесс:
- Шаг 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.
Шаг 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), если повезет, потому что, если хук получил receive_info от яблока до того, как клиент отправит счет на сервер, я не знаю этогоoriginal_transaction_id
заuser_id
,)Если Крюк может получить
user_id
из базы данных сoriginal_transaction_id
Мой процесс покупки будет успешным. В противном случае моя система выйдет из строя, потому что я не могу знать, будет ли пользователь обновлять купленный продукт.
Я не уверен, когда Apple Store отправит счет моему клиенту, а когда отправит на крючок. Это отстой.
Мой вопрос: мое решение точно? У кого-нибудь есть решение, чтобы улучшить эту проблему? благодарю вас. Пожалуйста, предоставьте запрос принять четкую информацию, если вы не понимаете, мое описание.