首页 文章

条带检出:使用已保存的源与新令牌创建费用

提问于
浏览
0

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

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

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

我是否忽略了将stripe.js令牌与客户关联起来的方式,这种方式不会产生重复?或者我错了吗?

1 回答

  • 1

    每当您在Checkout中收集卡片详细信息时,Stripe将为该卡片创建新的令牌,即使他们使用相同的卡片详细信息 . Token资源虽然具有 fingerprint property .

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

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

    您可以向客户添加多张卡或替换默认卡 . 您还可以通过传递 customer 中的客户ID和 source 中的卡ID来决定要收费的卡 . 这些都在Stripe的文档here中有详细介绍 .

相关问题