条纹 - 检查客户是否存在

アレッ*_*ックス 4 ruby ruby-on-rails stripe-payments

在条带文档中,他们有:

customer = Stripe::Customer.create(email: params[:stripeEmail], card: params[:stripeToken])
charge = Stripe::Charge.create(customer: customer.id, amount: price, description: '123', currency: 'usd')
Run Code Online (Sandbox Code Playgroud)

但我认为,对于我们必须检查客户是否存在的每笔付款都是错误的,我只是尝试使用测试帐户,结果发现有许多不同的客户使用相同的电子邮件但不同的ID.

如何检查客户是否已存在?

koo*_*jah 9

没有检查Stripe的结束以确保客户的独特性(电子邮件,卡片,名称等),这是您必须要做的事情.

通常,当您使用特定电子邮件地址创建客户时,您需要将从API返回的客户ID与电子邮件地址相关联.然后,下次检查此电子邮件地址是否已在您的系统中,并创建新客户或重新使用上一次的客户ID.

  • 除了将客户 ID 和电子邮件存储在您自己的数据库中之外,您还应该始终检查 Stripe 数据库中是否存在客户 ID,以确保它没有被删除(可能被会计部门删除)。您可以在此处请求客户 ID 时测试并捕获错误:https://stripe.com/docs/api/errors?lang=ruby (2认同)

MSa*_*udi 5

您可以通过GET /customers将电子邮件作为表单 urlencoded参数进行调用来检查客户是否存在。您将收到 200 OK 响应,但如果此客户电子邮件不存在,则返回的 data[] 将为空。

https://stripe.com/docs/api/customers/list
Run Code Online (Sandbox Code Playgroud)