我们假设客户在不使用该服务一段时间后返回支付订阅费用。一旦来自客户的卡信息从客户端浏览器发布,stripe.customers.create是否识别以前使用过的卡?在这种情况下,返回的客户对象ID是否具有与之前客户相同的ID?我问这个问题是因为我不确定我是否应该在我的数据库中为每个用户提供一个客户ID,或者为每个用户提供多个客户ID。
答案 0 :(得分:3)
我可以举例说明如何管理用户网站与Stripe客户之间的关联。
在我自己的数据库中,我有一个表,用于注册到站点的用户("用户")和一个用于客户条带的表(" Stripe_Customers")。 在Users表中有Stripe_Customers的GUID。当新用户注册该站点时,我也会在Stripe_Customers中创建一条新记录(将stripe_id列留空)。 然后,当用户转到付款表单页面时,我们会遇到以下情况:
在onLoad页面上:我检查他是否已经是customer_stripe。
如果" true":表单预先填充了条纹由他的stripe_id(Retrieve_Card)检索到的卡片信息。 在这种情况下,用户可以使用旧信用卡或插入新信用卡。
如果是插入新卡,当用户按提交时,我会在条纹(Update_Card)上更新客户的卡信息。
我上面写的不完整而且有点不同(我可以选择是否保存信用卡和其他东西)。
我希望这对你有所帮助。
P.S。:如果您想检查插入的信用卡是否与存储在Stripe上的客户信息中的信用卡相同,您需要检查"指纹"基于信用卡号码的参数(所以永远不要更改。卡片将始终相同"指纹")[有关详细信息,请参阅Card-Obeject文档]
答案 1 :(得分:1)
如果客户回来做某些操作,我们可以假设您已经掌握了相关的所有信息。因此,如果创建或更新客户(卡或订阅等等),您必须处理。
这是关于Stripe.create.Customer的文档。
它说:
创建一个新的客户对象。
无论如何,更多地了解你的情况。它是否已进入用户已登录的站点?或者它有什么不同?
答案 2 :(得分:0)
是客户ID是条带中的常量字符串。在您的应用程序中,当您注册客户时,请确保通过一次调用条带支付网关在那里注册。应该使用customer对象作为参数调用stripe.customers.create()方法 https://stripe.com/docs/api#create_customer
在条带中创建用户后,您可以通过调用此条带stripe.customers.createSource({},{},cb)的方法从您的api为该用户添加卡
这里的第一个参数是从stripe返回的客户ID。如果您在(Node.js)环境中,则第二个参数将是令牌,第三个参数将是回调函数。
谢谢