如何获得woocommerce中的付款响应网址?

时间:2016-05-18 07:47:51

标签: php wordpress woocommerce payment checkout

我已经在wordpress中集成了pay4later api。我需要在付款成功后显示付款响应详细信息。

我的插件文件:

class WC_Pay4later extends WC_Payment_Gateway{
      add_action('woocommerce_api_' . strtolower( get_class( $this ) ), array($this, 'check_response' ) );

       function check_response()
       {
            /* Update Process*/ 
       }

    }

我设置我的回复回复网址是:

www.mysite/pay4later/?wc-api=WC_Payment_GatewayPay4later_check_response. 

当我打电话给它时,它只显示1.

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

以下是woocommerce的Pay4later支付网关的骨架结构。

if ( ! defined( 'ABSPATH' ) ) { exit; }

add_action( 'plugins_loaded', 'wc_pay4later_init', 0 );

function wc_pay4later_init() {

    class WCPay4later extends WC_Payment_Gateway{

        public function __construct() {
            // Put your initialization scripts here
            // Which would be initializing merchan account info, secret keys, from this plugin's settings screen

            /* This would be your gateway return url */
            $this->callback = str_replace( 'https:', 'http:', home_url( '/wc-api/WCPay4later' )  );
            /* This action will redirect the gateway response to your 'check_pay_4_later_response' function */
            add_action( 'woocommerce_api_wcpay4later', array( $this, 'check_pay_4_later_response' ) );          
            /* This is the action where you prepare your digital form and submit to the gateway server */
            add_action('woocommerce_receipt_wcpay4later', array( $this, 'receipt_page') );          
        }

        function receipt_page( $order ) {
            echo '<p>'.__('Thank you for your order, please click the button below to pay with Pay 4 Later Gateway Service.', 'sark').'</p>';
            // prepare your digital form    
            echo $this -> generate_digital_form( $order );
        }

        function generate_digital_form( $order ) {
            // prepare and redirect to gateway server
        }

        function check_pay_4_later_response() {
            /* Update Process*/
        }

    }

    function woocommerce_add_pay_4_later_gateway( $methods ) {
        $methods[] = 'WCPay4later';
        return $methods;
    }   
    add_filter('woocommerce_payment_gateways', 'woocommerce_add_pay_4_later_gateway' );

}