Я создаю приложение, которое использует кредиты для отслеживания использования. Я ищу совета о том, как разработать часть системы, которая вращается вокруг кредитов.
Цель:
Пользователь подпишется на план, который либо бесплатен навсегда, либо на 14-дневную пробную версию. При первоначальной регистрации в зависимости от плана к информации об учетной записи пользователя должно быть добавлено определенное количество кредитов (на самом деле это не так, поскольку у меня есть другой способ отслеживания, а просто принять учетную запись пользователя). Мне нужно, чтобы количество кредитов клиента увеличилось на сумму, которую диктует его план при продлении подписки.
Куча:
Node.js
Express.js
MongoDB
Полоса
Текущие мысли о том, как это сделать:
В Stripe есть разные веб-перехватчики, один из которых — invoice.payment_succeeded
, для которого я могу добавить конечную точку веб-перехватчика, чтобы они присылали мне уведомления об успешном платеже (согласно Stripe: Occurs whenever an invoice payment attempt succeeds
).
Я думал о сценарии, который будет запускаться при получении этого веб-перехватчика, будет смотреть на план клиента и соответствующим образом обновлять его кредитный счет.
Кажется ли это хорошим решением для получения того, что я хочу, или есть лучший способ сделать это?
Я бы предложил использовать событие invoice.paid
, чтобы указать, когда счет-фактура перемещается в status=paid
, как более простой сигнал, но в целом ваш подход соответствует тому, что я собирался порекомендовать:
«Происходит всякий раз, когда попытка оплаты счета-фактуры успешна или счет-фактура помечен как оплаченный вне диапазона». Он включает в себя оба :) (в случае успешного платежа будут пропущены оплаченные счета-фактуры OOB)
Похоже, разница между вебхуком, который я сказал, и тем, что вы сделали, заключается в том,
invoice is marked as paid out-of-band
, имеет ли это значение и где это произойдет? Что касается остальной части того, что вы сказали, я думаю, что это хорошо согласуется с тем, что я имел в виду в качестве конечной цели, а также с моим приблизительным планом.