woocommerce погашает неудачные заказы новым идентификатором заказа - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть собственный плагин платежного шлюза, который идентифицирует идентификатор заказа Woocommerce, так как это уникальный номер счета. В случае сбоя платежа с конца платежного шлюза я не могу воспроизвести тот же заказ на вкладке «Мои учетные записи».

Я передаю идентификатор заказа woocommerce в качестве параметра (invno) в платежный шлюз и изменяю статус заказа согласно коду ответа

        $sHash = strtoupper(hash('sha256', $this->hashKey."Continue".str_pad($this->merchantid, 10, '0', STR_PAD_LEFT).str_pad($order->id, 20, '0', STR_PAD_LEFT).str_pad(($order->order_total*100), 12, '0', STR_PAD_LEFT)));

        $mpay_args = array(

            'secureHash'        => $sHash,

            'mid'               => str_pad($this->merchantid, 10, '0', STR_PAD_LEFT),

            'invno'             => str_pad($order->id, 20, '0', STR_PAD_LEFT),

            'amt'               => str_pad(($order->order_total*100), 12, '0', STR_PAD_LEFT),

            'desc'              => str_pad("Order No ".$order_id, 255, ' ', STR_PAD_RIGHT),

            'postURL'           => $this->notify_url,

            'phone'             => $order->billing_phone,

            'email'             => $order->billing_email,

            'param'             => 'WC|V1'

        );



            if ($r_status == '0' ){



                $order->payment_complete();



                $order->add_order_note('MPay Payment was SUCCESSFUL '.'<br>AuthCode is '  . $tranID);



                wp_redirect( $this->get_return_url($order) ); exit;





            }else{



                $order->update_status('failed', sprintf(__('MPay Payment Failed. Error Communicating with Bank.', 'mpay-chearaan-woo') ) );



                wp_redirect($order->get_cancel_order_url()); exit;



            }

        }               

, как сгенерировать номер заказа woocomemrce и сделатьэто как платеж не удалось. так что клиент может погасить за тот же заказ с новым идентификатором заказа

...