获取 Stripe 客户的默认付款来源(默认卡)?

Posted

技术标签:

【中文标题】获取 Stripe 客户的默认付款来源(默认卡)?【英文标题】:Get Default Payment Source (default card) for Stripe Customer? 【发布时间】:2021-02-14 02:52:40 【问题描述】:

我在 Stripe 中使用客户/信用卡创建了一个 POC,并在 Stripe 中登录到我的仪表板,并且能够看到该客户具有正确关联的默认来源(我添加的测试信用卡)。它显示此卡是默认来源。

当我运行这个 .Net 代码时:

 var customerService = new CustomerService();
 var stripeCustomer = await customerService.GetAsync(customerId);

为了获得该客户,它会正确返回除他的来源之外的所有内容。我希望我能找到它的所有领域都是空的!我想知道他的默认付款来源,以便我可以在前端显示它,并用一个小图标表示它是默认的。

DefaultSource、DefaultSourceId 和 Sources 属性均为空白/null。

有没有办法让 Stripe 退回它,还是我需要做其他事情?我尝试了 GetAsync 方法的 'expand' 属性,但抛出了一个错误,指出上述属性不可扩展(即我不能要求 Stripe 扩展/返回源)。

任何想法我能做什么?

仅供参考,我也试过这个:

  var paymentMethodService = new PaymentMethodService();
  var cards = await paymentMethodService.ListAsync(new PaymentMethodListOptions     Customer = customerId, Type = "card");

并且似乎没有任何地方说该卡是默认的属性(尽管它确实正确返回了所有卡)。我相信 Stripe 文档指出客户是默认来源的持有者,而不是卡片对象。什么给了?

提前致谢!

【问题讨论】:

【参考方案1】:

您似乎正在使用付款方式,因为您的付款方式列表调用具有您期望的结果,这意味着客户可能没有任何sources。如果您知道您的客户已附加来源,您可以使用正确的复数 expand[]=sources 再次尝试。

对于付款方式,客户没有一般默认设置。对于一次性付款意图,您必须始终从附加到客户的future payments 中指定payment_method

对于支付发票(例如与定期订阅相关),您可以设置invoice_settings.default_payment_method for Customer。这仅适用于发票。

【讨论】:

谢谢 - 但问题是,当我登录 Stripe 时,我看到了该客户的默认来源。 我使用 Stripe CLI 添加了一个新订阅 - 这包含生成客户、信用卡等的脚本。当我登录到 Stripe 时,我看到了所有内容,并且它有一个默认来源。然而,试图在 .net 中与之交互并没有产生任何来源。这是为什么?付款方式和付款来源之间有什么区别哈哈

以上是关于获取 Stripe 客户的默认付款来源(默认卡)?的主要内容,如果未能解决你的问题,请参考以下文章

Stripe:来源、卡、银行、支付方式有啥区别?

您如何确定用于已付款发票的付款方式?

条纹支付:来源与令牌/卡?

Stripe 该客户没有附加付款来源

Laravel Cashier - 更新订阅的付款方式

如何通过客户 ID 使用 Stripe 收费