为啥只保存在源中而不是卡片中的条带卡?

Posted

技术标签:

【中文标题】为啥只保存在源中而不是卡片中的条带卡?【英文标题】:Why is saved stripe card only in sources and not cards?为什么只保存在源中而不是卡片中的条带卡? 【发布时间】:2018-12-22 12:43:08 【问题描述】:

我在 Stripe 中保存了我的信用卡,但为什么它只在来源中

而不是在卡片下?

我已使用文档中指定的 stripe.customers.createSource 来保存卡片 (https://stripe.com/docs/api#create_card)

我猜这就是stripe.customers.listCards什么都不返回的原因

【问题讨论】:

【参考方案1】:

库中的方法stripe.customers.createSource 只是向/v1/customers/cus_123/sources 发出POST 请求以添加源。源本身的类型取决于您在客户端创建它所使用的类型。

如果您创建卡Tokens 客户端tok_123,您将在客户上获得Card object card_123。如果您在美国使用 ACH 借记卡并创建了银行账户令牌btok_123,您也可以获得Bank Account object。这是 API 中已存在多年的遗留方法。

最近,Stripe 发布了一个名为 Source 的新高级对象,您可以在 documentation 中阅读有关 Sources 的更多信息。无论使用何种支付方式(卡、SEPA 借记卡、支付宝、Sofort 等),这都允许您拥有一个唯一的对象。这使得处理代码中的逻辑变得更加容易,因为对象具有相同的形状和特定于每种支付方式的属性,它们存在于您知道以不同方式处理的子哈希中。这些 Source 对象的 id 格式为 src_123

在这里,您的客户附加了 Sources。这意味着在客户端,当您收集卡片详细信息时,您正在积极创建 Source 而不是 Token。这是由于您用来创建它的方法/调用。在Elements 中,您将使用createSource() 而不是createToken(),而在移动 SDK 中,它们将默认创建源。

归根结底,来源是一种更好的新集成方法,因为它们更具可扩展性,并且可以处理您未来的国际业务增长。我建议让 Sources 继续前进。

【讨论】:

啊,所以如果我想让客户获取他们可以付款的卡列表 (source.owner.type == 'card' and source.owner.usage == 'reusable'),我应该使用stripe.customer.listSources?但它似乎没有记录。这是正确的方法吗? 哦,但是默认情况下是否可以将它们过滤到可重复使用的卡片来源?我认为它比必须自己过滤掉不必要的东西并处理所有分页更有效 @JiewMeng 源的类型在顶层,不在owner 之下。它记录在这里:stripe.com/docs/api#source_object-type 今天也不可能只列出可重复使用的资源,尽管您可以在使用后简单地分离一次性资源:stripe.com/docs/api#detach_source

以上是关于为啥只保存在源中而不是卡片中的条带卡?的主要内容,如果未能解决你的问题,请参考以下文章

使用附加卡对客户进行条带化,但没有默认付款方式

使用单独的元素创建条带标记

Stripe API - 将卡迁移到 paymentMethods

无需储蓄卡即可进行条带支付

为啥c#中的main方法总是放在类中而不是c++中

为啥 itertools.groupby 可以将 NaN 分组在列表中而不是 numpy 数组中