使用Stripe for rails检查是否成功充电

 心雨00937 发布于 2022-12-10 19:26

语境:

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

小智.. 12

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

干杯,拉里

PS我在Stripe的支持工作.

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

    干杯,拉里

    PS我在Stripe的支持工作.

    2022-12-11 02:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有