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

Razorpay报错‘Amount exceeds maximum amount allowed’排查求助

解决Razorpay支付报错:Amount exceeds maximum amount allowed

问题核心

仅高金额支付触发该报错,低金额正常,说明问题出在金额限额校验或前后端金额一致性上,以下是具体原因和修复方案:

原因1:商户账户单笔支付限额不足

Razorpay会根据商户资质、风控等级设置单笔支付上限,新商户或免费账户的默认限额通常较低(比如单笔最高10000卢比,即1000000派萨),当订单金额超过该限额时会触发报错。

修复方案:

  • 登录Razorpay商户后台,进入「设置>支付设置>限额」,查看当前单笔支付限额
  • 若限额低于业务需求,提交限额提升申请(需提供商户资质、业务证明等材料)

原因2:前后端金额不匹配

Razorpay要求前端初始化支付的amount必须与后端创建订单时的amount完全一致(均为货币最小单位,INR为派萨),硬编码前端金额或前后端单位不一致都会触发校验失败。

看你的代码,前端硬编码了amount: 51000,但后续逻辑使用data.amount,存在不一致风险:
修复方案:

  • 移除前端硬编码的金额,直接使用后端返回的data.amount:
    var options = {
        key: 'API_KEY',
        amount: data.amount, // 替换硬编码的51000,用后端订单返回的金额
        currency: 'INR',
        name: 'Phone Dekho',
        order_id: data.id,
        // ... 其他配置保持不变
    };
    
  • 检查后端创建订单的API,确保返回的data.amount是最小单位的金额(比如510卢比对应51000派萨)

原因3:金额单位错误

若后端创建订单时误将卢比作为最小单位传入(比如想收510卢比,却传了510而非51000),前端再传入正确的派萨金额,会导致前后端金额不匹配,触发报错;反之若后端传的是放大100倍的金额,会直接超过账户限额。

修复方案:

  • 统一前后端金额单位:后端创建订单时必须传入货币最小单位的金额(INR为派萨),前端直接复用该值,不做任何转换

额外排查建议

  • 查看Razorpay商户后台的「交易日志」,找到报错订单的详细日志,可明确是账户限额问题还是金额不匹配问题
  • 使用测试模式密钥测试高金额支付(测试模式限额更高),快速定位是账户配置问题还是代码问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:45:09