从 Stripe 检索客户的默认卡和活动卡
Retrieve Customer's default and active card from Stripe
我正在尝试检索客户的默认卡和活动卡。 (还要记住,使用我的编码,客户始终可以拥有一张卡,这意味着如果有办法解决它,它可以提供帮助)。
几个月前,我使用了这个运行良好的代码段。 Stripe 似乎进行了一些更新,但我现在无法使用它。
current_user.stripe_card_id = customer.active_card.id
我得到的错误是
undefined method `active_card' for #Stripe::Customer
如果您需要更多信息,请告诉我。
编辑:customer.default_card.id
也不起作用。
customer = Stripe::Customer.retrieve(customer_id_on_stripe)
first_3_cards = customer.sources.all(limit: 3, object: 'card')[:data]
将return个卡片数组,如果要取bank_accounts
first_3_bank_accounts = customer.sources.all(limit: 3, object: 'bank_account')[:data]
我用 customer.methods 检查了方法并发现了这个 (default_source):
current_user.stripe_card_id = customer.default_source
现在工作正常。谢谢
默认卡 ID 将在 客户对象的 "default_source"
键
中可用
{
"id": "cus_GACkqbqFD8RQw4",
"object": "customer",
"default_source": <DEFAULT CARD ID HERE>
...
}
在此处阅读更多内容:https://stripe.com/docs/api/customers
[编辑] 此外,
值得注意的是,当您请求属于特定客户的所有卡的列表时,默认卡始终位于结果的顶部。因此,您还可以通过请求客户卡并添加 1 的限制来获得默认卡。
关于如何实现的信息:https://stripe.com/docs/api/cards/list
支付方式API - 2020 年更新
如果您已从旧的来源API切换到新的付款方式API,那么您应该知道与旧的 Sources 不同,客户没有默认的 Payment Method。
现在,您可以将默认付款方式附加到订阅对象:
Stripe::Subscription.update(
'sub_8epEF0PuRhmltU',
{
default_payment_method: 'pm_1F0c9v2eZvKYlo2CJDeTrB4n',
}
)
或作为 customer.invoice_settings.default_payment_method
Stripe::Customer.update(
'cus_FOcc5sbh3ZQpAU',
{
invoice_settings: {default_payment_method: 'pm_1vvc9v2eZvKYlo2CJDeTrB4n'},
}
)
无论变化如何,依靠客户的 default_source
都是安全的。您可以看到 here 如果未设置 invoice_settings.default_payment_method
和 subscription.default_payment_method
,订阅仍将使用客户的 default_source
。
我正在尝试检索客户的默认卡和活动卡。 (还要记住,使用我的编码,客户始终可以拥有一张卡,这意味着如果有办法解决它,它可以提供帮助)。
几个月前,我使用了这个运行良好的代码段。 Stripe 似乎进行了一些更新,但我现在无法使用它。
current_user.stripe_card_id = customer.active_card.id
我得到的错误是
undefined method `active_card' for #Stripe::Customer
如果您需要更多信息,请告诉我。
编辑:customer.default_card.id
也不起作用。
customer = Stripe::Customer.retrieve(customer_id_on_stripe)
first_3_cards = customer.sources.all(limit: 3, object: 'card')[:data]
将return个卡片数组,如果要取bank_accounts
first_3_bank_accounts = customer.sources.all(limit: 3, object: 'bank_account')[:data]
我用 customer.methods 检查了方法并发现了这个 (default_source):
current_user.stripe_card_id = customer.default_source
现在工作正常。谢谢
默认卡 ID 将在 客户对象的 "default_source"
键
{
"id": "cus_GACkqbqFD8RQw4",
"object": "customer",
"default_source": <DEFAULT CARD ID HERE>
...
}
在此处阅读更多内容:https://stripe.com/docs/api/customers
[编辑] 此外, 值得注意的是,当您请求属于特定客户的所有卡的列表时,默认卡始终位于结果的顶部。因此,您还可以通过请求客户卡并添加 1 的限制来获得默认卡。
关于如何实现的信息:https://stripe.com/docs/api/cards/list
支付方式API - 2020 年更新
如果您已从旧的来源API切换到新的付款方式API,那么您应该知道与旧的 Sources 不同,客户没有默认的 Payment Method。
现在,您可以将默认付款方式附加到订阅对象:
Stripe::Subscription.update(
'sub_8epEF0PuRhmltU',
{
default_payment_method: 'pm_1F0c9v2eZvKYlo2CJDeTrB4n',
}
)
或作为 customer.invoice_settings.default_payment_method
Stripe::Customer.update(
'cus_FOcc5sbh3ZQpAU',
{
invoice_settings: {default_payment_method: 'pm_1vvc9v2eZvKYlo2CJDeTrB4n'},
}
)
无论变化如何,依靠客户的 default_source
都是安全的。您可以看到 here 如果未设置 invoice_settings.default_payment_method
和 subscription.default_payment_method
,订阅仍将使用客户的 default_source
。