如何从Stripe JS的confirmSetup响应中获取支付方式详情?
解决Stripe confirmSetup直接获取payment_method详情的问题
- 核心方案:在
confirmParams中添加expand数组,指定展开payment_method字段,就能在返回的setupIntent里直接拿到完整的支付方式详情,无需额外调用API。之前扩展失败大概率是参数位置不对。
修改后的代码如下:
const form = document.getElementById("payment-form"); const stripe = Stripe('pk_test.....s'); form.addEventListener('submit', async (event) => { event.preventDefault(); stripe.confirmSetup({ clientSecret : "seti_...", redirect : "if_required", confirmParams : { return_url : "example.com/returnURL.php", // 添加expand参数展开payment_method expand: ['payment_method'] } }).then(function(result){ if(result.error){ document.getElementById("error-message").textContent = result.error.message; }else{ // 直接访问payment_method的详情 const paymentMethod = result.setupIntent.payment_method; // 获取卡片信息(卡号后四位、品牌等) const cardDetails = paymentMethod.card; // 获取账单地址信息(姓名、地址等) const billingDetails = paymentMethod.billing_details; console.log('卡片信息:', cardDetails); console.log('账单地址:', billingDetails); } }); });
- 注意事项:
expand是confirmParams的子属性,必须放在正确层级下才能生效。- 展开后的
payment_method包含card和billing_details字段,具体可用字段可参考Stripe官方定义按需取用。
内容的提问来源于stack exchange,提问作者midget
相关产品推荐
相关产品推荐

