wordpress支付插件開(kāi)發(fā),php支付插件開(kāi)發(fā)實(shí)例

        二次開(kāi)發(fā) admin 發(fā)布時(shí)間:2024-08-10 09:58:47 瀏覽:
        最近為客戶開(kāi)發(fā)了一個(gè)wordpress的開(kāi)發(fā)實(shí)例,現(xiàn)在分享出來(lái)給大家。
        本文為大家介紹支付網(wǎng)關(guān) API 創(chuàng)建自定義支付網(wǎng)關(guān)的方法。
        wordpress的電商功能,WooCommerce已經(jīng)進(jìn)行了包裝,因此在WooCommerce框架下開(kāi)發(fā)支付網(wǎng)關(guān)插件
        WooCommerce有 4 種類型的支付網(wǎng)關(guān):
         
        基于表單 – 這種方法中,用戶必須點(diǎn)擊表單中的提交按鈕,然后跳轉(zhuǎn)到第三方支付網(wǎng)關(guān)的網(wǎng)站處理支付。如 PayPal 標(biāo)準(zhǔn)接口, Authorize.net DPM,支付寶。
        基于 iFrame – 這種方法在 iframe 內(nèi)加載網(wǎng)關(guān)支付系統(tǒng),如: SagePay 表單, PayPal 高級(jí)接口。
        直接支付 – 如果使用這種支付方法,在結(jié)帳頁(yè)面當(dāng)點(diǎn)擊 ‘下訂單’ 的同時(shí),已經(jīng)支付成功了。  如: PayPal Pro, Authorize.net AIM
        線下支付 – 沒(méi)有線上處理過(guò)程. 如: Cheque, Bank Transfer
         
        1.首先按照插件的開(kāi)發(fā)規(guī)則,開(kāi)發(fā)好插件的源碼,然后在wordpress后臺(tái)進(jìn)行上傳即可。
        2.本文主要講支付插件的開(kāi)發(fā)。
        add_action( 'plugins_loaded', 'init_your_gateway_class' );
         
        function init_your_gateway_class() {
          class WC_Gateway_Your_Gateway extends WC_Payment_Gateway {}
        }
        function add_your_gateway_class( $methods ) {
        $methods[] = 'WC_Gateway_Your_Gateway'; 
        return $methods;
        }
         
        add_filter( 'woocommerce_payment_gateways', 'add_your_gateway_class' );
         
         
        public function process_payment( $order_id ) {
         
        $order = wc_get_order( $order_id );
         
        file_put_contents("wulog.txt", date('Y-m-d H:i:s')."--order_id[" . $order_id . "]\r\n",FILE_APPEND);
        file_put_contents("wulog.txt", date('Y-m-d H:i:s')."--order[" . json_encode($order) . "]\r\n",FILE_APPEND);
        $data=$_REQUEST;
        file_put_contents("wulog.txt", date('Y-m-d H:i:s')."--_REQUEST[" . json_encode($_REQUEST) . "]\r\n",FILE_APPEND);
         
         
        $mdkey='kr0x9p6zhouabwca4o6ato9otyeiz11g';
        $args = array(
        'pay_memberid'=> 10055,
        'pay_orderid'=> $order_id,
        'pay_applydate'=> date('Y-m-d H:i:s'),
        'pay_bankcode'=> '918',
        'pay_notifyurl'=> 'https://www.abc.vip/asiabillmain/pay/webhook_shop.php',
        'pay_callbackurl'=> 'https://www.abc.vip/asiabillmain/pay/webhook_shop.php',
        'pay_amount'=> $order->get_total(),
         
        );
        $data['order_no']=$order_id;
        $data['orderAmount']=$order->get_total();
        $sign=$this->Make_Sign($args,$mdkey);
        $args['pay_md5sign'] = $sign;
        $args['pay_productname'] = 'online';
        $args['pay_productdesc'] = 'online';
        $args['pay_producturl'] = 'https://www.abc.vip/product/black-printed-coffee-mug/';
        $args['pay_buyer'] = $data['billing_first_name'].' '.$data['billing_last_name'];
        $args['pay_address'] = $data['billing_address_1'];
        $args['pay_phone'] =  $data['billing_phone'];
        $args['pay_email'] =  $data['billing_email'];
        $args['pay_website'] =  'www.shoprong.vip';
        $args['pay_currency'] =  'usd';
        $args['pay_type'] = 'app';
        $url='https://www.xxx.com/Pay_Index.html';
        $response = $this->PostCurl( $url, $args );
        //$response=preg_replace_callback('/\\\\u([0-9a-f]{4})/i', create_function('$matches', 'return iconv("UCS-2BE","UTF-8",pack("H*", $matches[1]));'), $response); 
        $response = $this->decodeUnicode($response);
        file_put_contents("wulog.txt", date('Y-m-d H:i:s')."--response[" . $response . "]\r\n",FILE_APPEND);
        $result=json_decode($response,true);
        if ($result['returncode']=='00')
        {
        $data['transaction_id']=$result['transaction_id'];
        $jumpUrl=$result['payUrl'].'?'.http_build_query($data);
        //$jumpUrl=urlencode($jumpUrl);
        file_put_contents("wulog.txt", date('Y-m-d H:i:s')."--jumpUrl[" . $jumpUrl . "]\r\n",FILE_APPEND);
        //header("Location: ".$jumpUrl);
        return array(
        'result' => 'success',
        'redirect' => $jumpUrl
        );
        }
        else
        {
        wc_add_notice(  'The order is duplicated. Please try again.', 'error' );
        return;
        }
         
         
        }
         
        開(kāi)發(fā)后的支付頁(yè)面如下圖所示:
         
        wordpress.png
         
        大家有需要可以跟我聯(lián)系:QQ:804752009
         

        在線咨詢

        點(diǎn)擊這里給我發(fā)消息售前咨詢專員

        點(diǎn)擊這里給我發(fā)消息售后服務(wù)專員

        在線咨詢

        免費(fèi)通話

        24h咨詢:0475-2793529


        如您有問(wèn)題,可以咨詢我們的24H咨詢電話!

        免費(fèi)通話

        微信掃一掃

        微信聯(lián)系
        返回頂部
        在线观看日本亚洲一区| 亚洲影视自拍揄拍愉拍| 亚洲国产精品成人久久蜜臀| 亚洲成AV人片高潮喷水| 亚洲国产精品无码专区影院 | 激情97综合亚洲色婷婷五 | 亚洲av再在线观看| 国产精品亚洲一区二区三区久久 | 亚洲日本一区二区一本一道| 4480yy私人影院亚洲| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲无码一区二区三区| 亚洲欧洲日韩极速播放| 久久亚洲精品成人777大小说| WWW国产亚洲精品久久麻豆| 亚洲一区在线免费观看| 亚洲成Av人片乱码色午夜| 亚洲国产成人久久综合野外| 亚洲AV无码乱码在线观看性色扶 | 亚洲美女高清一区二区三区| 亚洲国产精品自在拍在线播放| 亚洲高清偷拍一区二区三区| 亚洲日本va午夜中文字幕久久| 国产午夜亚洲精品理论片不卡| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲欧美乱色情图片| 亚洲国产精品日韩在线观看| 久久久青草青青亚洲国产免观 | 亚洲成av人在片观看| 国产成人亚洲综合| 精品久久久久久亚洲| 亚洲午夜电影一区二区三区| 亚洲人成影院77777| 久久亚洲精品国产亚洲老地址| 亚洲日韩一区二区一无码| 精品亚洲成a人在线观看| 亚洲一区二区三区乱码A| 亚洲精品成人网站在线观看| 亚洲精品专区在线观看| 亚洲乳大丰满中文字幕| 爱情岛论坛网亚洲品质自拍|