2016-03-26 2 views
2

Ich versuche, die Stripe Charge ID bei einer fehlgeschlagenen Ladung zu erhalten, damit ich meinen Datensatz dank dieser ID abrufen kann, wenn der charge.failed Hook ausgelöst wird. Ich habe versucht, die ausgelöste Ausnahme zu untersuchen, aber ich finde keine Möglichkeit, sie zu bekommen. Hier ist mein Code:Retrieve Stripe Lade-ID bei fehlgeschlagener Ladung

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 

Antwort

0

Ich habe endlich die Metadaten verwendet, um meine Datensatz-ID mit der Ladung zu speichern. So kann ich es mithilfe dieser Metadaten abrufen.

charge = Stripe::Charge.create(
    { 
     amount: 2000, 
     currency: 'eur', 
     source: token, 
     description: 'Test', 
     metadata: { record_id: 23 } 
    }, { stripe_account: 'xxxxx' })