--- a/payment_commerce.module +++ b/payment_commerce.module @@ -409,10 +409,16 @@ $pids = payment_commerce_pids_load($payment->context_data['order_id']); if (is_array($pids) && $payment->pid == reset($pids)) { $order = commerce_order_load($payment->context_data['order_id']); - if (payment_status_is_or_has_ancestor($payment->getStatus()->status, PAYMENT_STATUS_FAILED)) { - commerce_payment_redirect_pane_previous_page($order); + $controller = $payment->method->controller; + $payment_status = $payment->getStatus()->status; + if (!($controller instanceof PaymentMethodBasicController) && !payment_status_is_or_has_ancestor($payment_status, PAYMENT_STATUS_NEW) && !payment_status_is_or_has_ancestor($payment_status, PAYMENT_STATUS_SUCCESS)) { + commerce_order_status_update($order, 'checkout_checkout'); } else { + if (payment_status_is_or_has_ancestor($payment_status, PAYMENT_STATUS_SUCCESS)) { + commerce_order_status_update($order, 'checkout_payment'); + } + commerce_payment_redirect_pane_next_page($order); } }