Как перехватить все события stripe webhook, которые не обрабатываются явно?

Существует множество различных типов Страйп событий. Кроме того, они отмечают, что могут добавить новые в любое время. Я использую dj-stripe. С моими обработчиками событий у меня есть представление о том, какие типы веб-крюков я должен отслеживать для довольно простой настройки подписки на Stripe. Есть ли в рамках dj-stripe простой способ отлавливать необработанные webhooks, с которыми я сталкиваюсь в производстве? На них я хотел бы отправлять себе сообщение о том, что произошло необработанное событие Stripe webhook.

Например, у меня есть следующие обработчики webhook:

@csrf_exempt
@webhooks.handler("checkout")
def my_handler(event, **kwargs):
    print("handling checkout event...")
    print(event.type)

@csrf_exempt
@webhooks.handler("customer")
def my_customer_handler(event, **kwargs):
    print("handling customer event... in my_customer_handler")
    print(event.type)

@csrf_exempt
@webhooks.handler("charge")
def my_charge_handler(event, **kwargs):
    print("handling charge event... in my_charge_handler")
    print(event.type)

@csrf_exempt
@webhooks.handler("payment_intent")
def my_payment_intent_handler(event, **kwargs):
    print("handling payment_intent event... in my_payment_intent_handler")
    print(event.type)


@csrf_exempt
@webhooks.handler("price", "product")
def my_price_and_product_handler(event, **kwargs):
    print("handling price/product event... in my_price_and_product_handler")
    print(event.type)

Теперь предположим, что приходит какой-то веб-крюк для выставления счета. Я понимаю, что djstripe сохранит это событие в таблице djstripe_invoice (через path('stripe/', include("djstripe.urls", namespace="djstripe")),). Но что если я хочу поймать, что это не тот тип webhook, который в настоящее время обрабатывается вне встроенных URL dj-stripe? Есть ли какая-нибудь сигнатура webhook, которую я могу добавить, чтобы уведомить меня о том, что произошло событие webhook, для которого я не сделал ничего, кроме обновления БД?

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

Если вы хотите выполнять некоторую обработку для all событий, похоже, что dj-stripe имеет опцию handler_all (code). Скорее всего, вы захотите вести некоторый словарь явных типов обрабатываемых событий и проверять, обработано ли полученное событие, прежде чем регистрировать необработанное событие.

Вернуться на верх