You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django集成Razorpay支付网关报错:Amount参数无需发送且不应传入

问题修复方案

这个错误的核心原因是参数名大小写不符合Razorpay API要求:Razorpay Python SDK创建订单时,金额参数要求使用全小写的amount,你的代码中使用了首字母大写的Amount,被API判定为非法多余参数,触发校验错误。

需修改的两处代码

1. views.py 代码修改

找到创建订单的行,将参数Amount改为小写amount,同时修正代码缩进问题,修改后代码如下:

from django.shortcuts import render
import razorpay
from .models import coffee 

def index(request):
    if request.method=='POST':
        Name = request.POST.get("Name")
        amount = int(request.POST.get("Amount")) * 100
        client = razorpay.Client(auth=("rzp_test_YhfEhfejrkkjdkfju","t5MRPkjfijdh23845kejkej"))
        # 把参数Amount改为小写amount
        payment = client.order.create({'amount':amount, 'currency':'INR'})
        print(payment)
        Coffee = coffee(Name=Name, Amount=amount , payment_id = payment['id'] )
        # 若需要将订单存入数据库需补充save方法
        Coffee.save()
        return render(request,'index.html',{'payment':payment})
    return render(request,'index.html')

def success(request):
    if request.method == 'POST':
        a = request.POST
        print(a)
    return render(request,"success.html")

注:新版Razorpay订单API已默认自动捕获支付,不需要额外传递payment_capture参数,可直接删除避免多余参数报错。

2. index.html 代码修改

找到前端调用支付的script标签,将{{payment.Amount}}改为小写{{payment.amount}},修改后对应代码如下:

<script
    src="https://checkout.razorpay.com/v1/checkout.js"
    data-key="rzp_test_YhfEhfejrkkjdkfju"
    data-amount="{{payment.amount}}"
    data-currency="INR" 
    data-order_id="{{payment.id}}"
    data-buttontext="Pay with Razorpay"
    data-name="Coffee Corp"
    data-description="A Wild Sheep Chase is the third novel by Japanese author Haruki Murakami"
    data-image="https://example.com/your_logo.jpg"
    data-prefill.name="Gaurav Kumar"
    data-prefill.email="gaurav.kumar@example.com"
    data-theme.color="#F37254"
></script>

修改完以上两处即可解决该报错。

内容的提问来源于stack exchange,提问作者ketanddadhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:39:02