我已经在Django Web应用程序上使用Stripe设置了基本的订阅系统,但是我对如何在数据库中记录从Stripe发送的事件感到困惑,我是否可以利用Django REST API来监听事件并使用它运行与事件对应的方法。
这里是一个示例,客户注册了订阅并全额付款,订阅清除了条带并变为活动状态。一个月后,客户的信用卡再次收费,但被拒绝。我读过here,Stripe会在发生这种情况时发送两个事件: charge.failed 事件和一个 invoice.payment_failed 。我将如何收听这些事件?
答案 0 :(得分:1)
您不需要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)})
在条带化Webhooks(条纹仪表板->开发人员-> Webhooks->添加端点)中添加上述url,然后使用ngrok 在本地主机中进行调试。