Мы начали реализовывать Stripe на Redsmin (один из наших проектов), и я думаю, что мы, возможно, что-то пропустили, Вот как это работает:
-
Чтобы использовать наш продукт, пользователь должен выбрать план (бесплатно, s, m, xl, xxl...), затем ввести его логин/пароль, и тогда вам будет полезно пройти 30-дневную пробную версию. Когда пользователь отправляет форму, наш сервер вызывает Stripe create_customer с указанным планом и без кредитной карты (потому что мы хотим предложить 30 дней бесплатно без необходимости кредитной карты), и мы обновляем модель пользователя на нашей стороне с возвращенными
customer_id
иsubscription_id
. -
Мы установили webhook для получения событий с полосой, поэтому через 30 дней наш веб-хост должен получить событие
customer.subscription.updated
сobject.status == active
. Я прав? -
Однако, поскольку мы не указали связанную карту для пользователя во время регистрации, мы должны быстро получать через другое событие
customer.subscription.updated
сobject.status == unpaid
вправо? Затем на нашей стороне мы деактивируем учетную запись пользователя и заставим ее перейти на страницу выбора плана. -
С этого момента пользователь может выбрать либо бесплатный план, либо один из наших премиальных планов:
-
#Scenario 1. Если пользователь выбирает бесплатный план, мы просто активируем его учетную запись на нашей стороне и ничего не делаем, потому что мы настроили бесплатный план на полосе, чтобы стоить 0 $. Мы реализовали правильный процесс с помощью нашего бесплатного плана? Есть ли лучшие способы?
-
#Scenario 2. Если пользователь выбирает премиальный план, мы перенаправляем его на форму кредитной карты, которая затем будет отправлена на Stripe, и мы обновим учетную запись пользователя с полосой временный токен карты. Что нам делать дальше?:
- Должны ли мы ждать появления полосы, чтобы отправить нам событие? Если да, то какое событие?
customer.subscription.updated
?charge.succeeded
? Каким будет значениеobject.status
тогда? - Следует ли нам непосредственно активировать учетную запись пользователя на нашей стороне и ждать подтверждения от полоски? Если да, то каково будет имя и данные события, которые мы должны ждать?
- Должны ли мы ждать появления полосы, чтобы отправить нам событие? Если да, то какое событие?