使用API​​,我怎么知道客户有一个信用卡存档?

使用API​​,我怎么知道客户有一个信用卡存档?

问题描述:

当有人目前注册一个服务器,他们点击一个计划,并弹出显示带条纹结账弹出窗口(要求信用卡信息等)使用API​​,我怎么知道客户有一个信用卡存档?

如果有人更新他们的计划,我不' t需要显示分条结账弹出窗口。我怎样才能确定客户不仅存在条纹,而且他们拥有条纹系统中的信用卡,所以我只需更新/更改他们的计划,而不要求他们重新输入他们的信用卡信息。

您可以在客户表中添加一列,其中包含值true或false,并且在创建客户时,它可以创建默认值false。当客户卡被确认存档时,该值可以更改为真。

我会建议创建一个条纹客户并将条纹客户ID存储在您的用户表中。在此,我假设您的客户/用户属于User模型的一部分,并在数据库中的users表中进行跟踪。

Stripe文档有一个recipe用于创建Stripe客户。我们将在这里借鉴。

首先,您需要将Stripe gem添加到您的Gemfile中。

接下来,您将需要运行迁移以将字符串列添加到名为stripe_customer_idusers表中。

下一页添加以下到你的用户模式:

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创建新费用的更多详细信息。