【问题标题】:Handling returning users with Stripe in Rails在 Rails 中使用 Stripe 处理返回用户
【发布时间】:2015-08-02 06:15:16
【问题描述】:

我正在努力将 Stripe 集成到我的 Rails 应用程序中。我无法找到有关如何处理回访用户的说明。但是,我不是指订阅者,只是可能会回来购买其他物品的用户帐户。我不想继续询问他们的信用卡信息。比如在airbnb,我刷了一次卡,它现在就记住了。我将如何在 Rails 中做同样的事情?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 stripe-payments


    【解决方案1】:

    假设您已经在前端创建了一个stripe_token 并将其传递给服务器,您可以将create a customer object(使用Stripe gem)与它自己的令牌一起保存到数据库,例如:

    customer = Stripe::Customer.create(
      source: stripe_token,
      description: "#{user.full_name} (#{user.email})"
    )
    user.stripe_customer_token = customer.id
    user.save!
    

    我发现设置一个好的描述很有用,因为此信息将显示在 Stripe Web GUI 中。

    然后您可以使用此令牌按需创建新费用:

    charge = Stripe::Charge.create({
      amount: (amount * 100).to_i, # billed in cents
      currency: 'USD',
      customer: user.stripe_customer_token,
      description: "Charge",
      statement_descriptor: "Example.com Charge",
    })
    

    此费用还有一个令牌,您可以根据需要保留该令牌:

    user.charges.create! stripe_token: charge.id
    

    【讨论】:

    • 这很有用,谢谢。我想我只需要找到一种方法将用户创建和收费分开,这样我就不会在购买时创建新用户?因为这就是我现在正在经历的。多个用户使用相同的电子邮件,因为这两种方法都在同一个 create 操作中。
    • @Batman 我不确定您的意思,但是是的,我认为收费代码应该与创建用户分开。创建客户更适合创建用户。我上面回答了你的问题吗?
    • 是的,你做到了。我按照条纹指南stripe.com/docs/checkout/guides/rails 进行了设置,他们设置了它,因此用户创建和收费发生在同一个操作中。但我想这更多是出于演示目的而不是生产目的。
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2017-01-28
    • 2012-03-11
    • 2011-02-23
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多