2016-08-02 27 views
1

我想創建條紋收費的訂單列表中的Rails像這樣:如何跳過失敗的充電條紋客戶當卡從紅寶石塊

Orders.all.each do |order| 
    charge = Stripe::Charge.create(
    :amount => 100, 
    :currency => "usd", 
    :customer => order.user.stripe_customer_id 
) 
    order.id = charge.id 
end 

但當Stripe::Charge.create遇到失敗卡,它將拋出Stripe::CardError: Your card was declined錯誤,並且Ruby塊將停止,從而阻止其餘訂單被收取費用。

有沒有一種方法可以跳過卡片被拒絕的訂單,以便剩餘的訂單可以收費?

感謝

回答

2

怎麼樣使用rescue

Orders.all.each do |order| 
    begin 
    charge = Stripe::Charge.create(
     amount: 100, 
     currency: "usd", 
     customer: order.user.stripe_customer_id 
    ) 
    order.id = charge.id 
    resuce Stripe::CardError => e 
    # do something useful with the exception 
    end 
end 

這是簡短的方法。您不希望將異常用作控制流。 你想檢查是什麼引起這個錯誤,並檢查這與if,以防止create引發一個異常

+0

我現在試試。謝謝。 – paoloferraro99

+0

這正是我過去不得不處理無效卡的原因。 – Brennan

+0

非常感謝!這就是它。我現在會更多地關注api。 – paoloferraro99