2017-02-23 73 views
1

我正在整合一個actvie商戶網關到我的Rails應用程序使用狂歡,但總是得到不能過渡狀態通過:下一步從:payment(原因:沒有付款找到)雖然有付款方式。Spree沒有找到支付

我使用的施普雷3.1穩定 這裏是我的代碼:

payment = @order.payments.create({ 
    amount: @order.total, 
    payment_method: payment_method, 
    source: credit_card, 
    }) 
# @order.next! through Cannot transition state via :next from :payment (Reason(s): No payment found) 
@order.next! 

有關如何解決這樣的錯誤

回答

1

訂單流過狀態機,在購物車的狀態開始的任何想法,結束於一個完整的狀態。中介狀態可以使用Checkout Flow API進行配置。

默認狀態如下:

車 地址 交貨 支付 確認 完整 付款狀態將僅payment_required觸發?返回true。

只有在confirm_required時纔會觸發確認狀態?返回true。

完整的狀態只能在以下兩種方式之一達成:

無需付款的順序。 訂單需要付款,並至少已將訂單總額作爲付款收到。 假設某個訂單滿足下一個狀態的標準,您可以通過調用該對象的下一個狀態將其轉換爲下一個狀態。如果這返回false,那麼訂單不符合標準。爲了解出爲什麼它不能轉換,請檢查錯誤方法調用的結果。

將狀態從付款更改爲完成需要至少一個完成的付款。

所以

payment = @order.payments.create({ 
amount: @order.total, 
payment_method: payment_method, 
source: credit_card, }) 

payment.complete! 

# @order.next! through Cannot transition state via :next from :payment (Reason(s): No payment found) 
@order.next!