这看起来像是自定义 WooCommerce 支付网关的 Webhook。在这种情况下,您可能不需要_wc_
in the add_action
功能。
Example:
$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";
}
另一件需要考虑的事情是headers。我不知道是否需要发送它们,但我最近创建了一个自定义网关,它的 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);
}
支付提供商基本上会发送一个包含我之前发送的订单 ID 的 IPN,因此我可以确认订单已付款。
这是我最近创建的自定义网关的链接,希望它能有所帮助:
https://github.com/usainicola/weldpay-woocommerce