Stripe: 'payment_intent.succeeded' также срабатывает при продлении подписки
У меня есть два API для веб-крючков Stripe в моем бэкенде (Django).
- веб-крючок "Подписка":
/api/subscriptions/webhook/ - веб-крючок "Добавить баланс в кошелек":
/api/wallet/webhook/
В вебхуке подписки я слушаю события invoice.paid и invoice.payment_failed, а в вебхуке кошелька я слушаю событие payment_intent.succeeded. Проблема в том, что каждый раз, когда вызывается веб-клик подписки, событие payment_intent.succeeded также срабатывает для веб-локатора кошелька. Я думаю, это происходит потому, что намерения оплаты также создаются и для подписки. Мне нужен способ разграничить эти два вида платежей (единовременный платеж [он же пополнение баланса кошелька] и подписка), чтобы не получить в итоге дополнительный кредит в кошельке пользователя при продлении подписки.
В итоге я использовал событие invoice.paid для обоих вебхуков и проверял поле data.object.lines.data[0].price.type, которое может быть либо one_time, либо recurring. Подробнее об этом можно прочитать на https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type