0

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

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

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

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

4

1 回答 1

1

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

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

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

您可以向客户添加多张卡或替换默认卡。您还可以通过同时传入客户 IDcustomer和卡 ID来决定对哪张卡收费sourceStripe 的文档在此处详细介绍了这一切。

于 2018-04-04T16:21:35.177 回答