События полосовой подписки Django - PullRequest
1 голос
/ 17 января 2020

Я настроил базовую c систему подписки с использованием Stripe в моем Django веб-приложении, но я не уверен, как записать события, отправленные с Stripe, в мою базу данных, буду ли я использовать Django REST API для прослушайте события и используйте его для запуска метода, соответствующего событию.

Вот пример: клиент подписывается на подписку и оплачивает ее полностью, подписка очищается и становится активной. Через месяц с кредитной карты клиента снова списывают средства, но ей отказывают. Я прочитал здесь , что Stripe отправляет два события, когда это происходит: charge.failed событие и invoice.payment_failed . Как бы я слушал эти события?

1 Ответ

1 голос
/ 17 января 2020

Вам не нужен Rest API,

ваш urls.py

url(r'^stripe/webhook/', stripe_webhook, name='stripe_webhook'),

ваш views.py

@csrf_exempt
def stripe_webhook(request):

    try:
        event_json = json.loads(request.body)

        if event_json['type'] == 'invoice.payment_failed':
            pass
            # get data from evet_json and get your logic here.
    except Exception as e:
        return JsonResponse({'error': str(e)})

Добавьте указанный выше URL в полоску webhooks (Stripe Dashboard-> Developers-> Webhooks-> Add endpoint) и используйте ngrok для отладки в localhost.

...