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

Flutter集成Razorpay支付时金额超出上限错误求助

解决Razorpay支付报错「Amount exceeds maximum amount allowed」的方案

核心修复步骤

1. 修正金额参数类型

你的代码将amount参数转为字符串传入,但Razorpay要求该参数必须是整数数值类型,字符串类型会导致网关解析异常,触发超限报错。

修改lunchRazorPay方法中的options配置:

void lunchRazorPay() {
  int amountToPay = int.parse(amountController.text) * 100;

  var options = {
    'key': "rzp_test_dLlOPoSwRLpQJE",
    'amount': amountToPay, // 直接传入整数,无需转为字符串
    'name': 'JMC',
    'description': 'Donate',
    'timeout': 300,
    'prefill': {'contact': '', 'email': ''}
  };

  try {
    _razorpay.open(options);
  } catch (e) {
    print(e);
  }
}

2. 限制输入合法性

避免用户输入非整数金额导致计算错误,给TextField添加输入限制:

// 需先导入 import 'package:flutter/services.dart';
TextField(
  controller: amountController,
  keyboardType: TextInputType.number,
  inputFormatters: [FilteringTextInputFormatter.digitsOnly],
  decoration: const InputDecoration(hintText: "Enter your Amount"),
)

额外排查项

  • 登录Razorpay后台检查测试模式下的单笔交易限额,确认是否存在手动设置的金额上限。
  • 确认账户默认货币与金额转换逻辑匹配(如印度卢比需转为派萨,乘以100为正确操作)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:41:17