• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 網絡軟件教程 > 詳細頁面

        PHP完成微信掃碼支付技巧

        PHP完成微信掃碼支付技巧

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺...
        微信(WeChat)是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造 [2] 。微信支持跨通信運營商、跨操作系統平臺通過網絡快速發送免費(需消耗少量網絡流量)語音短信、視頻、圖片和文字,同時,也可以使用通過共享流媒體內容的資料和基于位置的社交插件“搖一搖”、“漂流瓶”、“朋友圈”、”公眾平臺“、”語音記事本“等服務插件。
        本文主要和大家分享PHP實現微信掃碼支付功能的方法,希望能幫助到大家。

        在手機微信端進行微信支付,直接調起JSAPI支付,這可以實現在微信里邊的開的頁面進行支付,比如微商城,微信端JSAPI支付詳見:PHP實現微信支付(jsapi支付)和退款(無需集成支付SDK);但有時候商城還有PC端,需要在PC端使用微信支付,則需要PC端生成支付二維碼,然后微信掃碼完成支付。例如:

        PHP實現微信掃碼支付功能

        這里主要講一下PC端掃碼支付以及退款的具體實現:

        /**
        * 微信支付請求接口(POST)
        * @param string $goods_id 商品ID
        * @param string $body 商品簡單描述
        * @param string $order_sn 訂單編號
        * @param string $total_fee 金額
        * @return json的數據
        */
        public function wxpay($goods_id,$total_fee,$body,$order_sn){
        $config = $this->config;

        //統一下單參數構造
        $unifiedorder = array(
        'appid' => $config['appid'],
        'mch_id' => $config['mch_id'],
        'device_info' => 'WEB',
        'nonce_str' => self::getNonceStr(),
        'body' => $body,
        'out_trade_no' => $order_sn,
        'total_fee' => $total_fee * 100,
        'spbill_create_ip' => self::getip(),
        'notify_url' => 'http://'.$_SERVER['HTTP_HOST'].'/notify.php',
        'trade_type' => 'NATIVE',
        'product_id' => $goods_id
        );
        $unifiedorder['sign'] = self::makeSign($unifiedorder);

        //return $unifiedorder;

        //請求數據,統一下單
        $xmldata = self::array2xml($unifiedorder);
        $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
        $res = self::curl_post_ssl($url, $xmldata);
        if(!$res){
        return array('status'=>0, 'msg'=>"Can't connect the server" );
        }
        // 這句file_put_contents是用來查看服務器返回的結果 測試完可以刪除了
        file_put_contents('./log.txt',$res,FILE_APPEND);

        $content = self::xml2array($res);
        if(strval($content['result_code']) == 'FAIL'){
        return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));
        }
        if(strval($content['return_code']) == 'FAIL'){
        return array('status'=>0, 'msg'=>strval($content['return_msg']));
        }

        return $content;
        }

        /**
        * 微信退款(POST)
        * @param string(28) $transaction_id 在微信支付的時候,微信服務器生成的訂單流水號,在支付通知中有返回
        * @param string $out_refund_no 商品簡單描述
        * @param string $total_fee 微信支付的時候支付的總金額(單位:分)
        * @param string $refund_fee 此次要退款金額(單位:分)
        * @return string xml格式的數據
        */
        public function refund($transaction_id,$out_refund_no,$total_fee,$refund_fee){
        $config = $this->config;

        //退款參數
        $refundorder = array(
        'appid' => $config['appid'],
        'mch_id' => $config['mch_id'],
        'nonce_str' => self::getNonceStr(),
        'transaction_id'=> $transaction_id,
        'out_refund_no' => $out_refund_no,
        'total_fee' => $total_fee * 100,
        'refund_fee' => $refund_fee * 100
        );
        $refundorder['sign'] = self::makeSign($refundorder);

        //請求數據,進行退款
        $xmldata = self::array2xml($refundorder);
        $url = 'https://api.mch.weixin.qq.com/secapi/pay/refund';
        $res = self::curl_post_ssl($url, $xmldata);
        if(!$res){
        return array('status'=>0, 'msg'=>"Can't connect the server" );
        }
        // 這句file_put_contents是用來查看服務器返回的結果 測試完可以刪除了
        //file_put_contents('./log3.txt',$res,FILE_APPEND);

        $content = self::xml2array($res);
        if(strval($content['result_code']) == 'FAIL'){
        return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));
        }
        if(strval($content['return_code']) == 'FAIL'){
        return array('status'=>0, 'msg'=>strval($content['return_msg']));
        }

        return $content;
        }

        支付和退款就是這么簡單,而且支付的時候無需獲取用戶openid,無需證書文件,無需配置支付授權目錄,這是封裝過的支付類文件的實現,調用方法更簡單:

        require_once "webwxpay.class.php";

        $config = array(
        'appid' => 'wx123456789876',
        'mch_id' => '123456789',
        'pay_apikey' => '123456789876123456789876123456789876'
        );

        $wxpay = new WxPay($config);
        $result = $wxpay->paytest();
        //print_r($result);
        scerweima($result['code_url']); //生成的支付二維碼,用戶可以掃碼付款

        這時候就會生成支付二維碼,然后微信掃一掃就可以完成支付:

        PHP實現微信掃碼支付功能

        至于支付回調驗證,這里就不過多講了,不明白的可以看ThinkPHP中實現微信支付(jsapi支付)流程,這里詳細講了如何處理回調。

        相關推薦:

        微信支付的退款功能開發

        PHP實現微信支付功能開發代碼分享

        關于微信支付開發的10篇課程推薦

        以上就是PHP實現微信掃碼支付功能的詳細內容,更多請關注php中文網其它相關文章!


        微信提供公眾平臺、朋友圈、消息推送等功能,用戶可以通過“搖一搖”、“搜索號碼”、“附近的人”、掃二維碼方式添加好友和關注公眾平臺,同時微信將內容分享給好友以及將用戶看到的精彩內容分享到微信朋友圈。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 在线播放亚洲精品| 国产亚洲人成在线播放| 免费国产污网站在线观看| 免费一级特黄特色大片在线| 日韩欧美亚洲国产精品字幕久久久| 女人被免费视频网站| 亚洲国产最大av| 全免费毛片在线播放| 亚洲电影在线免费观看| 亚洲一级毛片免费看| 亚洲国产高清美女在线观看| 成人午夜免费福利视频| 色老板亚洲视频免在线观| 永久免费视频v片www| 无码一区二区三区亚洲人妻| 免费国产精品视频| 国产成人无码免费看片软件| 亚洲人成77777在线播放网站| 久久精品视频免费| 亚洲精品456在线播放| 成全视频在线观看免费高清动漫视频下载 | 亚洲国产亚洲综合在线尤物| 四虎精品视频在线永久免费观看| 亚洲欧洲视频在线观看| 成年女人喷潮毛片免费播放| 国产亚洲精品成人久久网站| 国产偷国产偷亚洲高清日韩| 嫩草成人永久免费观看| 亚洲制服丝袜第一页| 免费观看国产精品| 国产午夜精品免费一区二区三区| 亚洲国产亚洲综合在线尤物| 四虎免费永久在线播放| 成人性生交大片免费看好| 亚洲神级电影国语版| 四虎影视精品永久免费| 久久久久久久国产免费看| 亚洲日本国产精华液| 亚洲国产精品无码久久久久久曰 | 97国产在线公开免费观看| 亚洲偷自拍另类图片二区|