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

Django集成Razorpay时报错:request()接收到意外关键字参数'amount'

解决Django集成Razorpay时创建订单的参数错误问题

你遇到的这个错误,核心原因是创建订单时的参数传递格式不符合Razorpay Python SDK的要求。咱们一步步来理清楚:

问题根源

你原来的代码是直接把amount、currency这些参数作为独立的关键字参数传给client.order.create():

resp = client.order.create(amount=5000, currency='INR', receipt='TR110462011', payment_capture='1')

但Razorpay的SDK要求,订单相关的参数需要打包成一个字典,作为第一个参数传入create()方法,而不是分散的关键字参数。SDK内部的request()方法并没有预期接收这些零散的关键字参数,所以才会抛出request() got an unexpected keyword argument 'amount'的错误。

修正后的代码

把所有订单参数放进一个字典里,再传给create()方法就可以了:

client = razorpay.Client(auth=("<key>", "<secret>"))
# 将订单参数打包为字典
order_options = {
    'amount': 5000,  # 注意:金额是最小货币单位,5000代表50.00 INR
    'currency': 'INR',
    'receipt': 'TR110462011',
    'payment_capture': '1'
}
resp = client.order.create(order_options)

额外的验证小提示

  1. 升级SDK版本:确保你用的是最新版的Razorpay SDK,可以执行pip install --upgrade razorpay升级,避免版本兼容问题。
  2. 确认金额格式:Razorpay要求金额传入最小货币单位(比如印度卢比的分),你当前代码里的5000对应50卢比是正确的,别不小心传成50导致金额错误。
  3. 密钥有效性:虽然这个错误和认证无关,但还是要确认你用的<key>和<secret>是从Razorpay后台获取的有效密钥(测试环境用测试密钥,生产环境用生产密钥)。

这样修改后应该就能正常创建订单了,如果还有其他问题,可以查看SDK的官方文档确认参数细节,或者检查控制台的错误日志进一步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:02:57