加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:18:00 所属栏目:百科 来源:网络整理
导读:语境: 我正在使用条纹结帐来接受铁路一次性付款. 我有一个充电控制器,如下所示. 我最初使用条带webhook来收听charge.succeeded,但由于webhooks的异步特性而遇到了一些问题. 我已将业务逻辑移至控制器. 如果客户费用成功,那么我将客户和其他一些细节保存到数
语境:

我正在使用条纹结帐来接受铁路一次性付款.
我有一个充电控制器,如下所示.
我最初使用条带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的支持工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读