Передача идентификатора пользователя между приложением iOS и серверной частью Rails для покупок в приложении
У меня есть приложение Rails с поддержкой и приложение TurboTurbo Native для iOS.
В веб-приложении вы можете приобретать подписки через Stripe, поэтому мне нужно предоставить пользователям приложения iOS возможность совершать покупки в приложении.
На данный момент у меня есть следующие настройки:
Когда в собственном приложении пользователь нажимает кнопку «Купить», на серверы Apple отправляется правильный запрос на оплату и появляется интерфейс «Купить».
Уведомления сервера от Apple настроены таким образом, что конечная точка в моем приложении Rails получает пинг, когда подписка была приобретена, продлена или отменена с данными квитанции. Прямо сейчас я просто печатаю ответ JSON на свои журналы.
Как мне лучше всего связать уникальный идентификатор пользователя из моего веб-приложения с покупкой Apple?
В настоящий момент происходит то, что мой пользователь Sandbox iCloud отмечен как подписанный, но эта информация не связана с пользователем, вошедшим в приложение, поэтому у него нет доступа к функциям платного уровня.
Это идеальный рабочий процесс:
Пользователь нажимает «Купить» в приложении и подтверждает оплату.
Когда я получаю успешное уведомление сервера от Apple, я могу отметить этого пользователя как платного и создать для него объект подписки, сохраняя исходный идентификатор транзакции и другую соответствующую информацию о подписке.
После совершения покупки пользователь перенаправляется на другую страницу / представление в приложении.
Когда Apple отправляет дополнительные уведомления сервера, я могу сопоставить исходный идентификатор транзакции с подпиской в моей базе данных приложения Rails и при необходимости обновить доступ / подписку пользователя.
Главное - связать платеж с пользователем в моем бэкэнде приложения Rails.
Кто-нибудь успешно наладил такой рабочий процесс?
Мне бы хотелось получить советы о том, как к этому подойти.
Большое спасибо!
1 ответ
Это рабочий процесс, как я бы это сделал
- Авторизованный пользователь совершает покупку в приложении
- Квитанция о покупке отправляется по запросу в бэкэнд
- Серверная часть проверяет эту квитанцию и сохраняет информацию в базе данных (например, user_id, transaction_id и т. Д.)
- Вы можете прослушивать уведомления сервера AppStore и получать информацию о возмещении, отмене, обновлениях .... Для каждого события вы можете выполнить поиск в своей базе данных по идентификатору транзакции, чтобы получить соответствующего пользователя.