Stripe - Як обробити підписку за безкоштовним тарифним планом та не вимагаючи кредитної картки під час реєстрації


78

Ми почали впроваджувати Stripe на Redsmin (один з наших проектів), і я думаю, що ми, можливо, щось пропустили. Ось як це працює:

  1. Щоб скористатися нашим продуктом, користувач повинен вибрати тариф (безкоштовно, s, m, xl, xxl ...), потім ввести логін / пароль, а потім добре пройти безкоштовну 30-денну пробну версію. Коли користувач подає форму, наш сервер викликає Stripe create_customer із зазначеним планом і без кредитної картки (оскільки ми хочемо запропонувати 30 днів безкоштовно, не вимагаючи кредитної картки), і ми оновлюємо модель користувача на нашій стороні з поверненими customer_idта subscription_id.

  2. Ми створили веб-хук для прийому подій у смужку, тому через 30 днів наш веб-хук повинен отримати customer.subscription.updatedподію з object.status == active. Я правий?

  3. Однак, оскільки ми не вказали відповідну картку для користувача під час реєстрації, ми повинні швидко отримати після іншої customer.subscription.updatedподії з object.status == unpaidправильним? Потім на нашій стороні ми деактивуємо обліковий запис користувача і змушуємо його перейти на нашу сторінку вибору плану.

  4. Відтепер користувач може вибрати безкоштовний тарифний план або один із наших преміум-планів:

  5. # Сценарій 1 Якщо користувач вибирає безкоштовний план, ми просто активуємо його рахунок на нашій стороні і більше нічого не робимо, оскільки ми налаштували безкоштовний план у смужку на 0 доларів. Чи ми застосували правильний процес за допомогою нашого безкоштовного плану? Чи є кращі способи?

  6. # Сценарій 2 Якщо користувач вибирає преміум-план, ми перенаправляємо його на форму кредитної картки, яка потім буде надіслана Stripe, і ми оновлюємо рахунок клієнта stripe тимчасовим маркером картки. Що нам робити далі? :

    • Чи слід нам чекати, коли Stripe надішле нам подію? Якщо так, то яка подія? customer.subscription.updated? charge.succeeded? Якою буде тоді цінність object.status?
    • Чи слід нам безпосередньо активувати обліковий запис користувача на нашій стороні і чекати підтвердження з смуги? Якщо так, то якою буде назва події та дані, на які нам слід почекати?


1
@halfer дякую, ми це виправили!
FGRibreau

Чи це все ще діє з найновішим API? Це не дозволить мені створити підписку (навіть із безкоштовною пробною версією), якщо у клієнта немає джерела платежів.
imns

Відповіді:


46

У частині 2, де ви це робите:

Ми встановили веб-хук для отримання подій у смужку, тому через 30 днів наш веб-хук повинен отримати подію customer.subscription.updated з об’єктом.status == активний, я не маю права?

Ви також можете розглянути можливість впровадження веб- customer.subscription.trial_will_endхука. Цей веб-хук буде надіслано за три дні до закінчення пробного періоду для клієнтів і дозволить вам надіслати клієнтові сповіщення про оновлення їх платіжної інформації.

Таким чином, якщо користувач вирішить піти та оновити свою платіжну інформацію, Stripe зможе прийняти платіж, як тільки закінчиться пробна версія для клієнтів, і вони зможуть продовжувати користуватися вашою послугою без перерви.

# Сценарій 1 Якщо користувач вибере безкоштовний тариф, ми просто активізуємо його рахунок на нашій стороні і більше нічого не робимо, оскільки ми налаштували безкоштовний тариф на смужку коштувати 0 $. Чи ми застосували правильний процес за допомогою нашого безкоштовного плану? чи є кращі способи?

Наскільки я знаю, що це найкращий спосіб реалізації безкоштовних планів за допомогою Stripe, я б, напевно, переконався, що клієнтам не надсилалися рахунки-фактури, якщо це не потрібно. Я сумніваюся, що користувачі очікували б отримати рахунок-фактуру за кожний розрахунковий період, якщо б вони використовували безкоштовний тариф.

#Scenario 2 Якщо користувач вибере преміум-план, ми перенаправляємо його у форму кредитної картки, яка потім буде надіслана Stripe, і ми оновлюємо рахунок клієнта stripe тимчасовим маркером картки. Що нам робити далі ?:

  • Чи слід нам чекати, коли Stripe надішле нам подію, якщо так, то яку подію? customer.subscription.updated? звинувачення. вдалося? Яким буде тоді значення object.status?
  • Чи слід нам безпосередньо активувати обліковий запис користувача на нашій стороні і чекати підтвердження з смуги? Якщо так, то якою буде назва події та дані, на які нам слід почекати?

Як тільки користувач вибрав тарифний план та оновив свою платіжну інформацію, я одразу активував би його рахунок, за умови, що відповідь на оновлення передплати від Stripe була успішною.

Поки ви налаштували свої налаштування передплати на своїй інформаційній панелі Stripe, ви зможете дозволити Stripe обробляти, що вона буде робити, якщо платіж не вдасться. Просто переконайтесь, що ви застосували веб- customer.subscription.updatedхук, оскільки це буде веб-хук, який Stripe надішле вам, якщо вони позначать передплату як неоплачену або скасовану, що дозволить вам відповідно оновити власні записи.


"цей веб-хук буде надісланий за три дні до закінчення пробного періоду для клієнтів і дозволить вам надіслати клієнтові сповіщення про оновлення їх платіжної інформації [...], вони зможуть продовжувати користуватися вашою послугою без перерви." Я не думав про це завдяки!
FGRibreau

"Наскільки я знаю, це найкращий спосіб реалізації безкоштовних планів за допомогою Stripe" добре!
FGRibreau

"Просто переконайтесь, що ви впровадили веб-хук customer.subscription.updated", ось що я зробив, дякую!
FGRibreau

7
Stripe припускає, що рахунок-фактура все одно буде надісланий на тарифи в 0 доларів. Таким чином, я встановив для мене платіжний цикл річним, тому принаймні користувачі бачитимуть нульовий рахунок лише раз на рік, що не надто дратує.
BlinkyBill 02.03.15
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.