Контекст . Существует план Stripe "Starter". Заказчик подписывается на тариф «Стартер». В течение периода подписки пользователь хочет повысить или понизить подписку (в моем случае: количество будет увеличено или уменьшено). Программно я хочу добиться этого с помощью обновления подписки.

Проблема : Stripe хочет сделать обновление немедленно. Но я хочу, чтобы это изменилось в конце периода.

< EM> Альтернативы :

  • Я видел, как этот Stackoverflow задает точно такой же вопрос, но шесть лет назад -> Stripe: понизить рейтинг пользователя "в конце периода". Предлагаемые решения не совсем соответствуют желаемому и мне тоже не подходят.
  • Я видел, что у Stripe есть API графика подписки. Возможно, это связано с решением проблемы?

Я действительно жду (высокого уровня) решений для решения этой проблемы. Заранее спасибо.

0
Bugra 23 Ноя 2019 в 11:24

2 ответа

Лучший ответ

Вот что я обсуждал с каналом поддержки Stripe:

Я понимаю, что планирование не подходит для вас, так как вам нужно будет опубликовать расписание, как только будет выполнено обновление, поэтому новая подписка будет пролонгирована, и это не отменяет подписку, а запускает новую.

Что вы можете сделать, это отменить первую подписку at_period_end, а затем начать следующий, когда событие customer.subscription.deleted приходит через: https://stripe.com/docs/api/events/ типы # event_types - customer.subscription.deleted

Если вы не хотите использовать Webhooks, вы также можете отменить в конце периода а затем создать новую подписку в то же время, используя якорь платежного цикла https://stripe.com/docs/api/subscription/create#create_subscription- billing_cycle_anchor. Это будет работать только для подписок с тем же интервалом, или если второй интервал подписки короче первого.

Я реализовал решение webhook. Это прекрасно работает для меня.

1
Bugra 5 Дек 2019 в 20:15

Таким образом, вы хотите обновить информацию о подписке в конце текущего периода. В этом случае вы можете использовать события подписки на веб-крюках, упомянутые здесь.

«По истечении периода подписки отправляется событие invoice.created, указывающее на создание черновой накладной».

«Примерно через час после создания счета-фактуры он завершается (изменения больше не разрешены) и отправляется событие invoice.finalized».

Таким образом, вы можете прослушать это invoice.created событие, а затем обновить подписку.

0
Imtiaz Sakib 3 Дек 2019 в 07:10