#stripe-payments
#stripe-платежи
Вопрос:
Я использую Stripe для создания подписок на продукты. Рабочий процесс:
- Создайте клиента и подписку (с пробной версией) при регистрации нового пользователя
- Клиент может ввести данные карты в любое время до окончания пробной версии, но счет не будет выставлен до окончания пробной версии
Когда я делаю это в Stripe, я нахожу две подписки на клиенте.
Подписка создается с параметрами:
{customer: customer,
trial_period_days: 30,
proration_behavior: 'none',
items: [{price: ENV['STRIPE_SUBSCRIPTION_PRICE']}]}
Когда клиент хочет ввести данные своей карты, создается сеанс оформления заказа с помощью:
session = Stripe::Checkout::Session.create(
customer: customer,
payment_method_types: ['card'],
mode: 'subscription',
line_items: [
{price: ENV['STRIPE_SUBSCRIPTION_PRICE'], quantity: 1},
],
success_url: "#{domain}/subscription-success?session_id={CHECKOUT_SESSION_ID}",
cancel_url: "#{domain}/subscription-cancel",
)
В Stripe вы можете увидеть две подписки, созданные для этого клиента (одна с пробной версией и одна без нее). Для одной из подписок немедленно выставляется счет.
Как я могу создать сеанс проверки, который сохранит только первую подписку и начнет выставлять счета в конце пробной версии?
Большое спасибо
Ник
Ответ №1:
Если вы обновляете существующую подписку с помощью Stripe Checkout, вам необходимо mode: 'setup'
вместо этого использовать и передавать метаданные subscription_id
внутри намерения установки.
https://stripe.com/docs/payments/checkout/subscriptions/update-payment-details
В качестве альтернативы рассмотрите возможность внедрения портала выставления счетов клиентам вместо этого:
https://stripe.com/docs/billing/subscriptions/customer-portal
Комментарии:
1. Спасибо, но я попробовал это, и счета-фактуры не завершаются. Я попытался установить способ оплаты подписки по умолчанию, но, похоже, это не помогло. Нужно ли мне предпринять какие-либо другие действия после успешной проверки? Ник
2. Я думаю, что я неправильно установил способ оплаты по умолчанию после успешного оформления заказа. Теперь я устанавливаю его в customer, invoice_settings, default_payment_method, и я думаю, что он работает. Спасибо Ник