我确定我在这里遗漏了一些明显的东西,但是我无法理解如何检查现有卡片对顾客的看法 .
我在laravel应用程序中使用条带连接api来代表其他人管理付款,基本过程如下:
-
条纹
token
通过stripe.js
创建并随付款单一起提交 -
如果客户存在于本地数据库中,我 grab 他们的
stripe_id
,否则使用令牌作为源/卡创建新客户
然后使用检索到的或新客户创建 -
a
charge
stripe_id
目前,如果客户退回并使用不同的卡,由于收费仅包括客户而非来源,因此无论如何都将对其默认卡收费 .
我想做的是:
-
创建条纹
token
-
检查
customer
对本地数据库等 -
检查
card
指纹对客户的卡 -
如有必要,在客户的记录上创建新的
card
-
使用
customer
和card
ids创建费用
Simply put: 我无法看到生成持久性 card_id
的过程中的哪个位置;在 stripe.js
响应中使用的那些以及在条带仪表板中创建的那些看起来都是唯一的,这意味着每次充电都会创建一个全新的卡片对象 .
我知道我可以检索存储在客户帐户中的卡片列表 - 但是我从哪里获取初始 card_id
来搜索?
我在这里看到了一个触及这个问题的问题 - Can I check whether stripe a card is already existed before going to create new one?但是我没有做出头脑或尾巴 .
EDIT:
更简单的版本 - 有没有办法获得 fingerprint
,如条纹文档中所述 - https://stripe.com/docs/api/php#card_object - 无需先创建卡对象?
1 回答
所以这里的想法是在Card对象或Token对象上使用
fingerprint
而不是id本身,因为如果你多次添加同一张卡,它们会有所不同 .当您获得新的卡片令牌时,您可以通过Retrieve Token API检索它并在
card
哈希中查找fingerprint
.您将在数据库中保留与特定客户和/或卡相关联的已知指纹列表,以便您可以检测重复的卡 .
NOTE: 确保您使用密钥来获取这些信息 . 否则,如果您使用可发布密钥,则可能无法获得指纹值 .