返回

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

我错过了什么?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像