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

如何在Flutter中为flutter_stripe创建的PaymentIntent传递Stripe元数据?

如何为flutter_stripe创建的PaymentIntent传递元数据

Stripe的可更新对象(包括Account、Charge、Customer、PaymentIntent、Refund、Subscription和Transfer)确实都支持metadata参数,常用于传递像充值账户编号这类业务信息。但你查看flutter_stripe的PaymentIntent类时发现没有对应的属性或方法,这是因为元数据不应该在Flutter客户端设置,而是要在后端创建PaymentIntent时传入。

正确实现流程

  • 后端调用Stripe API创建PaymentIntent时,在请求体中添加metadata字段,示例请求体如下:
    {
      "amount": 1000,
      "currency": "usd",
      "metadata": {
        "recharge_account_id": "目标充值账户编号"
      }
    }
    
  • Flutter端通过flutter_stripe SDK调用支付相关方法(比如initPaymentSheet)时,只需传入后端返回的PaymentIntent客户端密钥(client_secret),元数据会自动关联到该PaymentIntent上。

不在客户端设置元数据的原因

  • 安全性:客户端代码易被篡改,若元数据包含敏感业务信息,在客户端设置存在泄露风险。
  • 合规性:Stripe最佳实践要求支付核心参数(含元数据)由可信后端生成,避免客户端操作带来的风险。

若业务场景确实需要传递客户端临时生成的非敏感数据,可先将数据传给后端,再由后端附加到PaymentIntent的metadata中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:30:53