我正在构建一个使用Stripe处理付款的应用程序。我们正在使用stripe connect从使用我们平台处理预订的用户收取申请费。在stripe文档中,我了解到可以使用支付流stripe调用:付款时保存付款详情。这一部分的实现正在发挥作用。正如预期的那样,stripe在用户付款期间保存了付款详细信息,我们希望将来使用该付款详细信息。为此,stripe推荐了如下工作流:当您准备在非会话状态下向客户收费时,请使用Customer和PaymentMethod ID创建PaymentIntent。然后,为了生成客户拥有的支付ID列表,我使用了stripe方法:
const paymentMethods = await strip.paymentMethods.list({ customer:“{{CUSTOMER_ID}}”,类型:'catch',});
这将返回一个带有数据字段的对象,该数据字段是与该客户关联的卡片阵列沿着支付id。我处于测试模式,因此,客户有多张卡。事实上,这些卡片的数量超过了5张。问题是,在客户有多张卡的情况下,如何确定使用哪张卡?或者我可以随意使用这些卡片吗?是否存在与用户关联的默认卡之类的东西?我尝试发送id数组,但strippaymentIntent API拒绝了它,typescript错误声明payment_method需要字符串而不是字符串[]
1条答案
按热度按时间n3schb8v1#
我假设您使用this指南来保存PaymentMethod以供将来使用。如果是这样,当您传递
setup_future_usage
时,它表明您将使用PaymentMethod进行未来的付款。如果客户有多个附加的PaymentMethod,您可以使用任意一张卡。但是,请注意,如果客户不认识这笔费用,最终客户可能会拒绝支付。因此,重要的是,他们知道他们的卡将被收费。至于默认的PaymentMethods,如果您使用的是发票,则与此无关。例如,您可以通过在Customer Update请求中传递
invoice_settings.default_payment_method
来设置要使用的客户的默认PaymentMethod。然而,我不认为这是你从上面的问题所追求的。