4

充電が失敗したときに Stripe の充電 ID を取得しようとしているので、charge.failedフックが起動されたときにその ID のおかげでレコードを取得できます。発生した例外を検査しようとしましたが、それを取得する方法が見つかりません。これが私のコードです:

  def charge
    token = params[:stripeToken]
    type = params[:stripeTokenType]
    metadata = {}
    record = Record.new(amount: Random.rand(2000), valid: false)
    charge = nil
    begin
      charge = Stripe::Charge.create(
          {
              amount: 2000,
              currency: 'eur',
              source: token,
              description: 'Test',
              metadata: metadata
          }, { stripe_account: 'xxxxx' })
      record.stripe_charge_id
      flash[:notice] = 'Transaction validée'
    rescue Exception => e
      record.error = e.code
      flash[:error] = 'Erreur de paiement'
    end
    flash[:error] = 'Erreur de paiement' unless record.save || flash[:error]
    redirect_to :stripe_test
  end
4

2 に答える 2