【问题标题】:Stripe Checkout: Using saved Source vs a new token to create a ChargeStripe Checkout:使用已保存的源与新令牌来创建费用
【发布时间】:2018-09-13 18:07:48
【问题描述】:

我正在使用 Stripe Checkout。在我能找到的所有文档中,Stripe 建议在我与该客户的第一次交易期间保存Customer 信息(包括默认的Source),并在稍后我想创建后续Charges 时使用默认的Source。但是,如果客户在随后的 Checkout 交易中使用不同的信用卡,则使用默认的Source 收费将是错误的。

因此,在进行后续更改时,似乎我应该始终只使用来自 stripe.js 的令牌,并且每当我使用与默认来源不同的卡检测到客户时,我应该为客户创建一个新来源。

但是,在我的测试中,我从 stripe.js 获得的每个令牌似乎都代表一张唯一的卡,即使我使用了相同的信用卡号、到期时间和 CVC。如果我要为每个 Checkout 令牌创建一张新卡并将其保存到客户记录中,我最终可能会为每个客户获得大量重复的卡记录。

我是否忽略了一种以不产生重复的方式将 stripe.js 令牌与客户相关联的方法?还是我做错了?

【问题讨论】:

    标签: stripe-payments stripe.js


    【解决方案1】:

    每当您在 Checkout 中收集卡详细信息时,Stripe 都会为该卡创建一个新令牌,即使它们使用相同的卡详细信息。 Token 资源有 fingerprint property

    该属性是您帐户中给定卡号的唯一标识符。这意味着,如果我今天用我的卡注册,然后明天用不同的电子邮件地址使用同一张卡回来,你会在 Token 或 Card 对象上看到完全相同的指纹。然后的想法是跟踪您在数据库中看到的所有卡指纹以检测回头客。每当客户添加新卡时,您首先会查看您之前是否在数据库中看到过该卡指纹并决定创建客户或基于此返回错误。

    另外,您不应为已保存卡的客户提供 Checkout。相反,您应该向他们展示可用的卡片,例如显示卡片品牌和最后 4 位数字。然后客户可以使用其中一张卡付款或添加一张新卡。

    您可以向客户添加多张卡片或替换默认卡片。您还可以通过传递customer 中的客户ID 和source 中的卡ID 来决定对哪张卡收费。 Stripe 的文档here 详细介绍了这一切。

    【讨论】:

    • “另外,您不应为已保存卡的客户提供 Checkout。相反,您应该向他们展示可用的卡,例如显示卡品牌和最后 4 位数字。并且然后客户可以使用其中一张卡付款或添加一张新卡。”啊,我没有明白这一点,但它很有意义。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-01-12
    • 2019-02-21
    • 2016-07-02
    • 2020-12-06
    • 2019-11-26
    • 1970-01-01
    • 2019-02-24
    • 2019-06-06
    相关资源
    最近更新 更多