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