Ключ заказа Woocommerce не передан функции order_pay. с сообщением об ошибке Извините, этот заказ недействителен и не может быть оплачен

Сбой заказа Woocommerce с сообщением об ошибке с платежным шлюзом razorpay.

К сожалению, этот заказ недействителен и не может быть оплачен.

Когда заказ размещен, pay_url генерируется, как показано ниже.

https://dev-xyz.pantheonsite.io/checkout/order-pay/6339/?key=wc_order_5b421123a4g1r

Но в функции «order_pay» в «WC_Shortcode_Checkout» возникает ошибка, как показано ниже.

К сожалению, этот заказ недействителен и не может быть оплачен.

из исключения

throw new Exception( __( 'Sorry, this order is invalid and cannot be paid for.', 'woocommerce' ) );

Углубившись в эту проблему, woocommerce ожидает ключ заказа от $_GET.

$order_key = $_GET['key'];

Есть решение, в чем может быть проблема?


person arasub    schedule 01.12.2017    source источник
comment
Пожалуйста, вам лучше открыть тему на страницах поддержки плагинов Razorpay для WooCommerce  -  person LoicTheAztec    schedule 01.12.2017


Ответы (1)


В качестве обходного решения:

      if($order_key === ''){
                    $order_key = get_post_meta( $order_id, '_order_key', true);
        }

Если невозможно получить значение из приведенного выше кода $_GET, приведенного ниже, который является частью класса WC_Shortcode_Checkout в D:\MAMP\htdocs\webiste\wp-content\plugins\woocommerce\ include\shortcodes\class-wc-shortcode-checkout.php решит эту проблему.

        } catch ( Exception $e ) {
            wc_add_notice( $e->getMessage(), 'error' );
        }
    } elseif ( $order_id ) {

        // Pay for order after checkout step
        $order_key            = isset( $_GET['key'] ) ? wc_clean( $_GET['key'] ) : '';
        $order                = wc_get_order( $order_id );
      if($order_key === ''){
                    $order_key = get_post_meta( $order_id, '_order_key', true);
        }
        if ( $order && $order->get_id() === $order_id && $order->get_order_key() === $order_key ) {

Еще одна возможная основная причина, проблема может быть в конфигурации Nginx. По умолчанию запрос может отсутствовать в конфигурации NGINX, что также может вызвать проблемы с отправкой значений в $_GET.

location / {
try_files $uri $uri/ /index.php?$query_string;
}
person arasub    schedule 01.12.2017