摘要:二接收微信調(diào)用任何接口都需要這一步也是折騰我最久的,主要推送過來的信息是加密的我們需要將信息解密,解密出將該保存后面需要用到消息加解密接入指引這個頁面上可以下載對應(yīng)語言解密的我選擇的是,貌似有點問題,自己改了下可以用了。
最近在做一個公眾號的工具,想使用公眾號的權(quán)限,第一步就是授權(quán),官方的文檔說的不是很清楚,對于一個剛接觸的開發(fā)者看起來是有點吃力的。
一、創(chuàng)建微信第三方應(yīng)用
說下兩個比較重要的域名設(shè)置
公眾號消息與事件接收URL微信服務(wù)器會向這個地址推送一些信息包括(ComponentVerifyTicket、用戶取消應(yīng)用授權(quán)...)
用戶關(guān)注公眾號或發(fā)送信息對應(yīng)的信息會推送到這個地址。
微信調(diào)用任何接口都需要component_verify_ticket,這一步也是折騰我最久的,主要推送過來的信息是加密的我們需要將信息解密,解密出component_verify_ticket將該ticket保存后面需要用到
消息加解密接入指引
這個頁面上可以下載對應(yīng)語言解密的demo,我選擇的是php,貌似有點問題,自己改了下可以用了。
public function parseMess() { $data = $_REQUEST; $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; $encryptMsg = $postStr; $xml_tree = new DOMDocument(); $xml_tree->loadXML($encryptMsg); $array_e = $xml_tree->getElementsByTagName("Encrypt"); $encrypt = $array_e->item(0)->nodeValue; $msg_sign = $data["msg_signature"]; $format = "接收微信服務(wù)推送的消息都需要解密,該方法都可以解密。 三、獲取第三方平臺component_access_token (調(diào)用接口需要的基礎(chǔ)參數(shù))"; $from_xml = sprintf($format, $encrypt); $msg = ""; $this->load->library("openweixin/wxBizMsgCrypt"); //改文件在php的demo包里面,加載過來就行 $pc = new WXBizMsgCrypt($this->token, $this->key, $this->appid); $timeStamp = $data["timestamp"]; $nonce = $data["nonce"]; $errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg); if ($errCode == 0) { $postObj = simplexml_load_string($msg, "SimpleXMLElement", LIBXML_NOCDATA); $data = (array)$postObj; return $data; }
component_access_token這個參數(shù)也需要保存,后面也會重復(fù)用到。
這個參數(shù)的有效期是2個小時,所以定時每2小時執(zhí)行下面的程序來更新component_access_token
public function getToken() { $ticket = $component_verify_ticket; //component_verify_ticket之前已經(jīng)保存了,從數(shù)據(jù)庫中獲取 $post = array( "component_appid" => $this->appid, //應(yīng)用詳情中的AppID "component_appsecret" => $this->secret, //應(yīng)用詳情中的AppSecret "component_verify_ticket" => $ticket, ); $ret=send_post("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $post); $result = json_decode($ret, True); $component_access_token = $result["component_access_token"]; //保存component_access_token echo "success"; }
//發(fā)送post請求 function send_post($url, $post_data) { $postdata=json_encode($post_data); $options = array( "http" => array( "method" => "POST", "header" => "Content-type:application/x-www-form-urlencoded", "content" => $postdata, "timeout" => 15 * 60 // 超時時間(單位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; }獲取預(yù)授權(quán)碼pre_auth_code
有限時間是10分鐘,所以定時執(zhí)行每過10分鐘來刷新一次pre_auth_code
//刷新pre_auth_code public function refresh_pre() { $info = getData("system_config", array("type" => "component_access_token"), array(), 1); $component_access_token = $info ["value"]; $url = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=".$component_access_token; $post = array("component_appid" => $this->appid); $ret=send_post($url, $post); $result = json_decode($ret, True); $pre_auth_code = $result["pre_auth_code"]; //保存pre_auth_code echo "success"; }
這是我的個人網(wǎng)站今日Tech 喜歡科技新聞的朋友可以收藏下。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22142.html
摘要:微信公眾號第三方開發(fā)平臺一之前的文章是獲取調(diào)用接口的一些基本參數(shù),繼續(xù)開發(fā)微信開放平臺。 微信公眾號第三方開發(fā)平臺(一) 之前的文章是獲取調(diào)用接口的一些基本參數(shù),繼續(xù)開發(fā)微信開放平臺。 一、授權(quán)公眾號,獲取公眾號的授權(quán)參數(shù) public function tiaozhuan() { $info = getData(system_config, array...
摘要:相關(guān)資料博客微信第三方登錄接口開發(fā)端微信掃碼登錄文檔移動端網(wǎng)頁微信公眾平臺授權(quán)登錄微信開放平臺登錄與微信公眾平臺授權(quán)登錄區(qū)別在哪微信登錄接口幾個問題微信登錄的和區(qū)別百分號編碼在線轉(zhuǎn)換第三方登錄 微信登錄接口開發(fā)須知 APP登錄接口 PC網(wǎng)站登錄接口 微信移動網(wǎng)頁登錄接口(又稱微信公眾號授權(quán)登錄) 移動端非微信自帶瀏覽不支持微信登錄 微信移動網(wǎng)頁登錄接口(又稱微信公眾號授權(quán)登錄) ...
摘要:一微信官方文檔微信支付開發(fā)流程公眾號支付首先我們到微信支付的官方文檔的開發(fā)步驟部分查看一下需要的設(shè)置。配置微信公眾賬號支付配置支付類所有方法都在這個類里發(fā)起支付微信公眾賬號支付訂單異步回調(diào)這就是這個所說的行代碼解決微信支付。 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號:好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習資源。 一、微信官方文檔微信支付開發(fā)流程(公眾號支付) 首先我...
摘要:淺析微信支付前篇大綱本文是淺析微信支付系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經(jīng)驗,與君共勉。下面講一下我是如何去學(xué)習微信支付的。 淺析微信支付:前篇大綱 本文是【淺析微信支付】系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經(jīng)驗,與君共勉。 以下會分幾個步驟講一下我學(xué)習微信支付的過程,也是一部辛酸史,也是希望朋友們不要再次跌進...
閱讀 2787·2021-11-19 11:30
閱讀 3069·2021-11-15 11:39
閱讀 1793·2021-08-03 14:03
閱讀 1999·2019-08-30 14:18
閱讀 2055·2019-08-30 11:16
閱讀 2169·2019-08-29 17:23
閱讀 2611·2019-08-28 18:06
閱讀 2545·2019-08-26 12:22