使用API,我怎么知道客户有一个信用卡存档?
问题描述:
当有人目前注册一个服务器,他们点击一个计划,并弹出显示带条纹结账弹出窗口(要求信用卡信息等)使用API,我怎么知道客户有一个信用卡存档?
如果有人更新他们的计划,我不' t需要显示分条结账弹出窗口。我怎样才能确定客户不仅存在条纹,而且他们拥有条纹系统中的信用卡,所以我只需更新/更改他们的计划,而不要求他们重新输入他们的信用卡信息。
答
您可以在客户表中添加一列,其中包含值true或false,并且在创建客户时,它可以创建默认值false。当客户卡被确认存档时,该值可以更改为真。
答
我会建议创建一个条纹客户并将条纹客户ID存储在您的用户表中。在此,我假设您的客户/用户属于User
模型的一部分,并在数据库中的users
表中进行跟踪。
Stripe文档有一个recipe用于创建Stripe客户。我们将在这里借鉴。
首先,您需要将Stripe gem添加到您的Gemfile中。
接下来,您将需要运行迁移以将字符串列添加到名为stripe_customer_id
的users
表中。
下一页添加以下到你的用户模式:
def get_or_create_stripe_customer!(stripe_token, stripe_email = nil)
return self.stripe_customer_id if self.stripe_customer_id.present?
stripe_email = self.email if stripe_email.nil?
customer = customer = Stripe::Customer.create(
:email => stripe_email,
:source => stripe_token,
)
self.update_attribute(:stripe_customer_id, customer.id)
return customer.id
end
从你的控制器,处理付款,你可以拨打
current_user.get_or_create_stripe_customer! params[:stripe_token], params[:stripe_email]
这将创建一个新的条纹客户或检索条纹顾客ID。注意:在此代码示例中,current_user
是代表登录用户的变量。
您可以简单地查询current_user.stripe_customer_id.present?
以确定客户是否有信用卡存档。您也可以使用stripe_customer_id
创建未来费用。
Stripe Charges documentation可以引导您了解有关创建Stripe客户(即保留信用卡信息)和使用Stripe客户ID创建新费用的更多详细信息。