Как вызвать функцию обратного вызова woocommerce? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь проверить, работает ли моя функция обратного вызова, посетив URL-адрес обратного вызова в моем браузере http://localhost:90/wordpress-payment-demo/wc-api/callback_handler/, но я продолжаю получать -1. Вот моя функция обратного вызова.

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_wc_' . $this->id , array( $this, 'callback_handler' ) );

function callback_handler() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
    die();
}

Я также попытался отправить сообщение по почте с почтальоном, и я получил код состояния 400 неправильных запросов.

1 Ответ

0 голосов
/ 31 января 2019

Это похоже на веб-крючок для пользовательского платежного шлюза WooCommerce. В этом случае вам, вероятно, не нужен _wc_ в функции add_action.

Пример:

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );

function webhook() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
    die();
}

Вам также не нужно заканчивать выполнение , потому что это делает WooCommerce, следовательно, вы, вероятно, захотите удалить функцию die():

$this->id = 'paymentplugin';

add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );

function webhook() { 
    header( 'HTTP/1.1 200 OK' );
    echo "callback";
}

Еще одна вещь, которую следует учитывать, это заголовки . Я не знаю, нужно ли их отправлять, но я недавно создал собственный шлюз, в котором есть только этот код в webhook, и он отлично работает:

function webhook() {
  $order_id = isset($_GET['order_id']) ? $_GET['order_id'] : null;
  $order = wc_get_order( $order_id );
  $order->payment_complete();
  wc_reduce_stock_levels($order_id);
}

Поставщик платежа в основном отправляет IPN, содержащий идентификатор заказа, который я ранее отправил, поэтому я могу подтвердить, что заказ был оплачен.

Вот ссылка на пользовательский шлюз, который я недавно создал, надеюсь, он поможет:

https://github.com/usainicola/weldpay-woocommerce

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...