国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php開發(fā)微信第三方平臺(tái)遇到的那些坑 (更新中)

TIGERB / 2960人閱讀

摘要:先談一共有兩個(gè)坑,一個(gè)是接收不要用還有一個(gè)就是解密后的需要干掉字符串前面的不說了上代碼吧引入騰訊官方處理解密后的字符串如果出錯(cuò)則返回?cái)?shù)組再談很多朋友會(huì)報(bào)錯(cuò)誤,我覺得可能是騰訊服務(wù)器對(duì)換行符的解析有問題導(dǎo)致的,于是改用了處理

先談component_verify_ticket

一共有兩個(gè)坑,一個(gè)是php接收xml不要用$_post 還有一個(gè)就是解密后的ticket需要干掉字符串前面的"ticket@@@"

不說了 上代碼吧

include_once "wx_third/wxBizMsgCrypt.php";//引入騰訊官方example
    function wxservice(){
            $xml_msg=file_get_contents("php://input");
            $msg=array(
                    "timeStamp"  => empty($_GET["timestamp"])     ? ""    : trim($_GET["timestamp"]) ,
                    "nonce"     => empty($_GET["nonce"])     ? ""    : trim($_GET["nonce"]) ,
                    "msg_sign"   => empty($_GET["msg_signature"]) ? ""    : trim($_GET["msg_signature"])
            );
            $wx_settins=array(
                "appId"=>"xxx",
                "token"=>"xxx",
                "encodingAesKey"=>"xxx",
                "secrect"=>"xxx",
                "ticket"=>"xxx"
            );
            $result=component_decode($xml_msg,$msg,$wx_settins);
            }
    function component_decode($xml,$msg,$config){
            $pc = new WXBizMsgCrypt($config["token"], $config["encodingAesKey"], $config["appId"]);
            $xml_tree = new DOMDocument();
            $xml_tree->loadXML($xml);
            $array_e = $xml_tree->getElementsByTagName("Encrypt");
            $encrypt = $array_e->item(0)->nodeValue;
            $format = "";
            $from_xml = sprintf($format, $encrypt);
            $message = "";
            $errCode = $pc->decryptMsg($msg["msg_sign"], $msg["timeStamp"], $msg["nonce"], $from_xml, $message);
            if ($errCode == 0) {
                $xml = new DOMDocument();
                $xml->loadXML($message);
                $array_e = $xml->getElementsByTagName("ComponentVerifyTicket");
                $component_verify_ticket = preg_replace("/ticket@@@/","",$array_e->item(0)->nodeValue) ;//處理解密后的字符串
                return $component_verify_ticket;
            }else{
            //如果出錯(cuò)則返回?cái)?shù)組
                return array(
                    "err_msg"=>$errCode
                );
            }

        }
再談component_access_token

很多朋友stream_context_create會(huì)報(bào)40002錯(cuò)誤,我覺得可能是騰訊服務(wù)器對(duì)換行符的解析有問題導(dǎo)致的,于是改用了curl處理POST請(qǐng)求

function fresh_access_token($ticket=null){
    $wx_settins=$wx_settins=array(
                "appId"=>"xxx",
                "token"=>"xxx",
                "encodingAesKey"=>"xxx",
                "secrect"=>"xxx",
                "ticket"=>"xxx"
            );
        $post_data = array(
                "component_appid" =>$wx_settins["appId"],
                "component_appsecret" => $wx_settins["secrect"],
                "component_verify_ticket" =>$ticket
        );
        $data=json_decode(request_post("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $post_data),1);
}
function request_post($url,$data){
        $data =json_encode($data);
        $ch = curl_init(); //用curl發(fā)送數(shù)據(jù)給api
        curl_setopt( $ch, CURLOPT_POST, true );
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
        curl_setopt( $ch, CURLOPT_URL, $url );
        curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
        curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
        $response = curl_exec( $ch );
        curl_close( $ch );
        return $response;
    }
pre_auth_code

pre_auth_code和verify_ticket一樣,字符串前面有 preauthcode@@@ 需要替換掉

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25993.html

相關(guān)文章

  • 使用 vue2.0 發(fā)微公眾號(hào)下前后端分離SPA站點(diǎn)之旅

    摘要:目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對(duì)應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁(yè)面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...

    afishhhhh 評(píng)論0 收藏0
  • 使用 vue2.0 發(fā)微公眾號(hào)下前后端分離SPA站點(diǎn)之旅

    摘要:目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法主要是前端。前端提交時(shí)使用,在后端再取出對(duì)應(yīng)的微信支付看了下文檔,以前是需要用喚起支付,而現(xiàn)在則是把微信內(nèi)置到了微信的瀏覽器中。 目前正在寫一個(gè)微信公眾號(hào)的小項(xiàng)目,記錄一下遇到的問題和解決方法(主要是前端)。內(nèi)容持續(xù)更新中~ 主要實(shí)現(xiàn) 前后端分離前端為 SPA 單頁(yè)面使用微信的JSSDK微信支付 技術(shù)方案 后端使用 php ...

    Taonce 評(píng)論0 收藏0
  • 使用vue發(fā)微公眾號(hào)下SPA站點(diǎn)之旅

    摘要:原文見我的博客,點(diǎn)擊進(jìn)入使用開發(fā)微信公眾號(hào)下站點(diǎn)的填坑之旅本文為我創(chuàng)業(yè)過程中,開發(fā)項(xiàng)目的填坑之旅。作為一個(gè)技術(shù)宅男,我的項(xiàng)目是做一個(gè)微信公眾號(hào),前后端全部自己搞定,不浪費(fèi)國(guó)家一分錢。 原文見我的博客,點(diǎn)擊進(jìn)入使用vue開發(fā)微信公眾號(hào)下SPA站點(diǎn)的填坑之旅 本文為我創(chuàng)業(yè)過程中,開發(fā)項(xiàng)目的填坑之旅。作為一個(gè)技術(shù)宅男,我的項(xiàng)目是做一個(gè)微信公眾號(hào),前后端全部自己搞定,不浪費(fèi)國(guó)家一分錢^_^。 ...

    yeyan1996 評(píng)論0 收藏0
  • 記錄一次發(fā)微網(wǎng)頁(yè)分享

    摘要:需求最近在做一個(gè)項(xiàng)目需求,分享領(lǐng)好書活動(dòng),獲取用戶的個(gè)人信息以及,并誘導(dǎo)用戶分享給好友或朋友圈,達(dá)到裂變拉新的目的。 需求 最近在做一個(gè)項(xiàng)目需求,分享領(lǐng)好書活動(dòng),獲取用戶的個(gè)人信息以及unionID,并誘導(dǎo)用戶分享給好友或朋友圈,達(dá)到裂變拉新的目的。在做的過程中遇到了一些坑的地方,所以回過來(lái)總結(jié)一下 技術(shù)方案 使用微信JS-SDK自定義分享到好友和分享到朋友圈 實(shí)現(xiàn)步驟 1、要實(shí)現(xiàn)微信...

    宋華 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

TIGERB

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<