python-将 Razorpay 支付网关与 Django 集成导致 CSRF 验证失败
发布时间:2022-09-04 07:53:56 296
相关标签: # node.js
这个问题之前在这里被问过,但我没有 50 个声望点来继续讨论这个答案本身。
精简版
本质上,问题归结为 - 我有一个将 POST 数据发送到我的 Django 应用程序的外部 URL。我想访问这个 POST 数据,但 Django 给出 403 错误(缺少 CSRF 令牌)。
详细版
我正在尝试将Razorpay 的托管支付网关添加到我的 Django 项目中。我已将 URL 传递给回调功能中的以下函数。
如上一个答案中所述,我尝试使用csrf_exempt装饰器并在文件中添加https://api.razorpay.comURL ,但问题仍然存在。付款成功后,我仍然收到 Django 的 403 错误。CSRF_TRUSTED_DOMAINSsettings.py
@csrf_exempt
def course_purchase_callback(request):
payment_id = request.POST.get("razorpay_payment_id")
order_id = request.POST.get("razorpay_order_id")
signature = request.POST.get("razorpay_signature")
client = razorpay.Client(auth=(os.getenv("RZP_ID"), os.getenv("RZP_SECRET")))
verify = client.utility.verify_payment_signature({
"razorpay_payment_id": payment_id,
"razorpay_order_id": order_id,
"razorpay_signature": signature,
})
settings.py file
..
..
..
CSRF_TRUSTED_ORIGINS = ["https://api.razorpay.com"]
..
..
正在使用的版本:
- Django=4.0.3
- Razorpay API = 1.3.0
我错过了什么?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报