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