ruby-on-rails – 使用Stripe for rails检查是否成功充电

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用Stripe for rails检查是否成功充电前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
语境:

我正在使用条纹结帐来接受铁路一次性付款.
我有一个充电控制器,如下所示.
我最初使用条带webhook来收听charge.succeeded,但由于webhooks的异步特性而遇到了一些问题.
我已将业务逻辑移至控制器.
如果客户费用成功,那么我将客户和其他一些细节保存到数据库中.

我的问题:

这个检查是否足以确保收费成功?

if charge["paid"] == true

Stripe :: Charge.create的Stripe文档声明,“
如果充电成功,则返回充电对象.如果出现问题,会引发错误.常见的错误来源是无效或过期的卡,或可用余额不足的有效卡.“

我的ChargesController:

class ChargesController < ApplicationController

  def new

  end

  def create
    # Amount in cents

    @amount = 100
    temp_job_id = cookies[:temp_job_id]
    customer_email =  TempJobPost.find_by(id: temp_job_id).company[:email]
    customer = Stripe::Customer.create(
      :email => customer_email,:card  => params[:stripeToken]
    )

    charge = Stripe::Charge.create(
      :customer    => customer.id,:amount      => @amount,:description => 'Rails Stripe customer',:currency    => 'usd',:Metadata => {"job_id"=> temp_job_id}
    )
    # TODO: charge.paid or charge["paid"]
    if charge["paid"] == true
     #Save customer to the db
    end

    # need to test this and refactor this using begin-->rescue--->end
    rescue Stripe::CardError => e
      flash[:error] = e.message
      redirect_to charges_path

  end
end

解决方法

是的,这就是你需要做的.如果充电成功,Stripe将返回Charge对象,您可以检查其付费参数.如果收费失败,我们会抛出异常.

干杯,
拉里

PS我在Stripe的支持工作.

猜你在找的Ruby相关文章