如何在Stripe现有支付方式列表中启用银行转账?
解决方案:结合自动支付方式与银行转账功能
不需要手动硬编码所有支付方式,利用Stripe的automatic_payment_methods扩展配置就能实现需求,既保留自动加载适配支付方式的能力,又能加入银行转账功能。
核心思路是使用automatic_payment_methods的allowed_payment_method_types字段,将customer_balance(对应银行转账)加入允许列表,同时配合payment_method_options配置银行转账的具体规则:
stripe.paymentIntents.create({ amount, currency: currency as string, metadata, description, customer: customer.id, // 启用自动支付方式,同时指定必须包含的支付类型 automatic_payment_methods: { enabled: true, allowed_payment_method_types: ['customer_balance'] // 加入customer_balance,Stripe会自动补充对应地区的其他可用支付方式 }, // 配置银行转账的具体参数,可根据用户所在国家动态调整 payment_method_options: { customer_balance: { funding_type: 'bank_transfer', bank_transfer: { type: 'eu_bank_transfer', eu_bank_transfer: { country } } } } })
关键说明:
- Stripe不允许同时设置
automatic_payment_methods和payment_method_types,因为两者分别对应自动模式和手动指定模式,必须二选一。而allowed_payment_method_types是自动模式下的扩展配置,用来强制包含特定支付方式类型,不会冲突。 - 针对20多个国家的支持,只需要根据用户的
country参数动态调整bank_transfer下的配置(比如切换eu_bank_transfer、us_bank_transfer等类型),其他适配的支付方式依然由Stripe自动加载,无需手动硬编码所有列表。 - 如果需要保留信用卡等基础支付方式,只需在
allowed_payment_method_types中添加对应的类型(比如'card')即可。
内容的提问来源于stack exchange,提问作者Darkbound
相关产品推荐
相关产品推荐

