Stripe Payments - 将现有卡添加到客户

Posted

技术标签:

【中文标题】Stripe Payments - 将现有卡添加到客户【英文标题】:Stripe Payments - Add existing card to customer 【发布时间】:2017-04-20 13:22:38 【问题描述】:

我有一个 Squarespace 应用程序为客户收取费用,但是 Squarespace 不创建客户对象,它只是存储费用。

我的目标:当用户进行购买时,创建一个附有订阅计划的 Customer 对象,以便我们可以对卡进行定期收费。

我可以通过条带测试 API 提取费用列表,每个费用都有一个 source,其中包含一个卡令牌。因此,据我了解,我应该能够创建一个客户并传入源或源 ID,它会将源添加到该客户。

我的代码如下所示:

customer = Stripe::Customer.create(
  :email => customerEmail,
  :plan => customerPlanId,
  :source => charge[:source],
  :description => customerName
)

我在条带沙箱中执行此操作。我可以清楚地看到存储在charge中源对象中的卡,但是stripe会抛出错误:

`handle_api_error': No such token: card_19NXFMKm5fnTITnyYdk6shyj (Stripe::InvalidRequestError)

提前致谢!

【问题讨论】:

【参考方案1】:

当您使用source 参数create a customer 时,它应该是令牌ID ("tok_..."),而不是卡ID。

有关更多信息,请参阅此 *** 答案:https://***.com/a/34416413/5307473

【讨论】:

感谢您的回答,这绝对是问题所在。据我了解,我无法访问该令牌,因为它仅在收费过程中发生并且不会被存储。对吗? 对不起,我不关注。 Stripe 令牌代表卡,同时对您隐藏 PCI 敏感信息。您可以直接使用卡令牌来创建费用,或创建客户对象(您可以反过来使用它来创建费用而无需创建新令牌)。 我在结账时无法访问令牌对象,因为我使用的是 squarespace commerce。我想做的是稍后以某种方式访问​​令牌,但我唯一可以访问的是收费清单。是否可以从费用中创建代币? 不,令牌是直接从卡信息创建的。您无法根据过去的费用重新创建令牌。

以上是关于Stripe Payments - 将现有卡添加到客户的主要内容,如果未能解决你的问题,请参考以下文章

将 PayPal 添加到现有 Stripe 计费流程的最简单方法

Stripe、Stripe Payments、Connect、关联账户、拆分支付

php Stripe Payments - WordCamp ATL 2015

在 stripe.NET-payments 基本示例(Xamarin)中找不到类型

如何通过 Stripe.com 向客户收取特定卡的费用

PayPal Adaptive Payments 和 Stripe 的更便宜的替代品