如何在Stripe上无需付款保存银行卡信息?后续API操作指引
保存客户银行卡信息的Stripe操作步骤
你已经完成的创建客户、创建设置意图(Setup Intent)、创建Elements元素是正确的前置步骤,接下来需要通过以下操作完成银行卡信息的保存:
核心操作:确认卡片设置并关联客户
当用户通过Elements输入完银行卡信息后,在前端调用 stripe.confirmCardSetup() 方法,该方法会完成卡片验证,并将支付方式(PaymentMethod)自动关联到你之前创建的客户账户下:
// 前端代码示例 const { error, setupIntent } = await stripe.confirmCardSetup( 'SETUP_INTENT_CLIENT_SECRET', // 从后端获取的Setup Intent的client_secret { payment_method: { card: cardElement, // 你通过stripe.elements()创建的卡片元素实例 billing_details: { name: '客户姓名' // 可选,填写客户账单姓名 } } } ); if (error) { // 处理错误,比如提示用户卡片信息有误 console.error(error.message); } else { // 设置成功,此时Setup Intent的payment_method字段就是保存的支付方式ID const savedPaymentMethodId = setupIntent.payment_method; // 将这个ID发送到你的后端,关联客户ID保存到数据库 fetch('/save-payment-method', { method: 'POST', body: JSON.stringify({ customerId: 'YOUR_CUSTOMER_ID', paymentMethodId: savedPaymentMethodId }) }); }
关键注意事项
- 创建设置意图(
stripe.setupIntents.create())时,必须传入customer: '你的客户ID'和payment_method_types: ['card']参数,这样确认后支付方式才会自动绑定到该客户。 - 你无需存储任何银行卡敏感信息(如卡号、CVV),只需保存返回的
PaymentMethod ID即可,后续支付时直接使用该ID。
后续使用已保存的支付方式
当需要给该客户发起支付时,可在后端调用 stripe.paymentIntents.create(),指定对应的客户ID和保存的PaymentMethod ID:
# 后端Python代码示例(其他语言同理) stripe.PaymentIntent.create( amount=1000, # 金额,单位为分 currency='usd', customer='YOUR_CUSTOMER_ID', payment_method='SAVED_PAYMENT_METHOD_ID', confirm=True # 自动确认支付 )
你也可以通过 stripe.customers.listPaymentMethods('YOUR_CUSTOMER_ID') 接口,获取该客户名下所有已保存的支付方式,用于展示给用户选择。
内容的提问来源于stack exchange,提问作者Srushti Shah
相关产品推荐
相关产品推荐

