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

Stripe支付中如何传递账单姓名?元素创建报错求助

解决Stripe支付中传递账单姓名的问题

错误原因

你代码里用的billingName不是Stripe Elements支持的元素类型,所以触发了报错。Stripe Elements没有单独的账单姓名元素,要传递账单姓名有两种常规方案:


方案一:用整合式卡片元素自动收集姓名

如果你不需要拆分卡片输入项,直接用card元素(整合卡号、有效期、CVC、账单姓名的完整组件),开启姓名收集配置即可:

var cardElement = elements.create('card', {
  style: style,
  billingDetails: {
    name: {
      required: true // 开启后会自动显示姓名输入框
    }
  }
});
cardElement.mount('#card-element');

用户输入的姓名会被元素自动收集,后续确认支付时无需额外处理,信息会自动传递给Stripe。


方案二:自定义姓名输入框,手动传入信息

如果需要单独的姓名输入框,先自己写HTML输入框:

<input type="text" id="billing-name" placeholder="Name on card">

然后正常创建Stripe的卡片元素(比如拆分的cardNumber、cardExpiry、cardCvc),在确认支付时把姓名传入billing_details参数:

stripe.confirmCardPayment(clientSecret, {
  payment_method: {
    card: cardElement, // 这里替换成你的卡片元素实例
    billing_details: {
      name: document.getElementById('billing-name').value
      // 还可以添加email、address等其他账单信息
    }
  }
}).then(function(result) {
  // 处理支付成功/失败的结果
});

注意事项

  • 严格使用Stripe官方支持的Elements类型,就是报错信息里列出的那些:card、cardNumber、cardExpiry等。
  • 如果用拆分的卡片元素,必须手动收集姓名并在支付确认时传入,Stripe不会自动获取额外输入框的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 07:06:32