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

时间:2020-11-01 04:52:28

标签: stripe-payments

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

当我运行此.Net代码时:

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

要获得该客户,它将正确返回除其来源以外的所有内容。我希望可以从中找到的所有字段都是空的!我想知道他的默认付款来源,因此可以在前端显示一个带有小图标的图标,以表明它是默认的。

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

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

有什么想法我能做什么?

仅供参考,我也尝试过:

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

并且似乎没有任何地方可以显示该卡为默认卡(尽管它确实可以正确返回所有卡)。我相信Stripe文档指出客户是默认来源的持有者,而不是卡对象。有什么作用?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

对于“付款方式”,客户没有一般默认设置。对于一次性付款意向,您必须始终为future payments的客户附加payment_method

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