摘要:先談一共有兩個(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 = "再談component_access_token"; $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 ); } }
很多朋友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
摘要:目前正在寫一個(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 ...
摘要:目前正在寫一個(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 ...
摘要:原文見我的博客,點(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ó)家一分錢^_^。 ...
摘要:需求最近在做一個(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)微信...
閱讀 2031·2023-04-25 15:24
閱讀 1575·2019-08-30 12:55
閱讀 1615·2019-08-29 15:27
閱讀 470·2019-08-26 17:04
閱讀 2406·2019-08-26 10:59
閱讀 1797·2019-08-26 10:44
閱讀 2193·2019-08-22 16:15
閱讀 2587·2019-08-22 15:36