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

Flutter项目集成RazorpayWeb插件后,如何配置动态商品数据至支付选项的技术求助

解决Razorpay Web动态填充商品支付信息的问题

我看了你的代码结构,核心问题是当前的Payments组件没有接收从ShoePage传递过来的选中商品数据,所以只能用固定的支付配置值。咱们只需要把商品数据传递到支付页面,再动态注入到Razorpay的配置里就能实现需求了,具体步骤如下:


1. 让Payments组件支持接收商品参数

首先修改Payments的定义,让它能接收CardItem类型的商品数据:

class Payments extends StatefulWidget {
  final CardItem item; // 添加商品参数
  const Payments({Key? key, required this.item}) : super(key: key); // 更新构造函数

  @override
  _PaymentsState createState() => _PaymentsState();
}

2. 从ShoePage跳转时传递商品数据

在ShoePage的"Buy Now"按钮点击事件里,跳转Payments页面时把当前选中的商品数据传过去:

// 替换原来的Navigator.push代码
Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => Payments(item: widget.item), // 传递选中的商品
  )
)

3. 动态配置Razorpay支付选项

现在在Payments组件里,用传入的商品数据动态设置支付参数。注意:Razorpay的amount要求传入最小货币单位的数值(比如如果你的商品价格是印度卢比,10卢比就要传1000,因为1卢比=100派萨),所以需要把商品价格转成整数后乘以100:

@override
Widget build(BuildContext context) {
  // 处理金额:转换为Razorpay要求的最小单位数值
  int paymentAmount = int.parse(widget.item.subtitle) * 100;

  return MaterialApp(
    home: Scaffold(
      body: RazorpayWeb(
        rzpKey: "rzp_test_DNaSxot4oJHykG",
        options: RzpOptions(
          amount: paymentAmount, // 动态填充商品金额
          name: widget.item.title, // 动态填充商品名称
          description: "Payment for ${widget.item.title}", // 动态生成支付描述
          image: widget.item.urlImage, // 用商品图片作为支付弹窗的标识图
          prefill: const PrefillData(
            name: "Razorpay",
            email: "rzp@gmail.com",
            contact: "9876543210",
          ),
          colorhex: "#FF0000",
        ),
        onPaymentSuccess: (String paymentId) {
          print("Payment Success");
          log(paymentId);
        },
        onPaymentError: (String error) {
          print("Payment Error");
        },
      ),
    ),
  );
}

额外优化小建议

  • 可以在ShoePage里增加商品数量选择器,计算总金额后再传递给支付页面
  • 预填的用户信息(姓名、邮箱、电话)可以改成从用户登录数据里获取,提升支付体验
  • 给int.parse(widget.item.subtitle)添加异常处理,避免价格格式错误导致崩溃

这样修改后,当你点击任意商品的"Buy Now"按钮,Razorpay支付弹窗就会自动填充对应商品的名称、金额等信息了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 17:52:50