Остановить stripe, создающую 2 подписки

#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, и я думаю, что он работает. Спасибо Ник