【问题标题】:Stripe Payments - Add existing card to customerStripe Payments - 将现有卡添加到客户
【发布时间】: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)

提前致谢!

【问题讨论】:

    标签: ruby stripe-payments


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答,这绝对是问题所在。据我了解,我无法访问该令牌,因为它仅在收费过程中发生并且不会被存储。对吗?
    • 对不起,我不关注。 Stripe 令牌代表卡,同时对您隐藏 PCI 敏感信息。您可以直接使用卡令牌来创建费用,或创建客户对象(您可以反过来使用它来创建费用而无需创建新令牌)。
    • 我在结账时无法访问令牌对象,因为我使用的是 squarespace commerce。我想做的是稍后以某种方式访问​​令牌,但我唯一可以访问的是收费清单。是否可以从费用中创建代币?
    • 不,令牌是直接从卡信息创建的。您无法根据过去的费用重新创建令牌。
    猜你喜欢
    • 2015-05-08
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 2020-08-14
    • 1970-01-01
    • 2019-12-23
    • 2015-03-28
    相关资源
    最近更新 更多