我的网关付款流程的最后一步出了问题。 我有一节课:
class ECC_Payment_Gateway extends WC_Payment_Gateway{
public $id;
public $merchantID;
....
public function __construct(){
$this -> id = 'ecc';
$this -> action_url = ....
....
$this -> init_form_fields();
$this -> init_settings();
....
add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options'));
add_action('woocommerce_api_wc_' . $this->id, array($this, 'check_ipn_response'));
add_action('woocommerce_receipt_' . $this->id, array($this, 'generate_form'));
add_action('woocommerce_thankyou_' . $this->id, array($this, 'thankyou_page'));
add_action('template_redirect', 'ecc_redirect_after_purchase' );
add_action('woocommerce_api_callback', 'callback_handler' );
add_filter('woocommerce_add_to_cart_redirect', 'ecc_add_to_cart_redirect');
}
}
我定义了所有add_actions-functions,但是当我的网关进行重定向时,没有人被解雇。 我的网关将所有参数(order_id,金额等)的响应发送到我的商店到POST正文。 但我只得到一个内容为-1的页面。
我尝试了几种方法在我的网关上重定向/通知网址(因为我有几个例子):
作为php类(实际上它描述为WC Docs)::
作为插件ID:
我对行动的顺序有点混淆
我是对的,WC 应该从网关拦截此类请求, 自动 解析参数并重定向我 从结帐页面:
http://[my_store_place]/checkout/?key=wc_order_5a575e004be9a&order=184
到解析了orderID的另一个页面(thankyou-page)?
http://[my_store_place]/checkout/order-received/184/?key=wc_order_5a575e004be9a
184 - 网关的order_id
5a575e004be9a - db的order_id(据我所知)
或者我必须执行任何其他手动步骤来从我的网关到我的网站商店的请求? 提前谢谢!