摘要:二接收微信調(diào)用任何接口都需要這一步也是折騰我最久的,主要推送過(guò)來(lái)的信息是加密的我們需要將信息解密,解密出將該保存后面需要用到消息加解密接入指引這個(gè)頁(yè)面上可以下載對(duì)應(yīng)語(yǔ)言解密的我選擇的是,貌似有點(diǎn)問(wèn)題,自己改了下可以用了。
最近在做一個(gè)公眾號(hào)的工具,想使用公眾號(hào)的權(quán)限,第一步就是授權(quán),官方的文檔說(shuō)的不是很清楚,對(duì)于一個(gè)剛接觸的開(kāi)發(fā)者看起來(lái)是有點(diǎn)吃力的。
一、創(chuàng)建微信第三方應(yīng)用
說(shuō)下兩個(gè)比較重要的域名設(shè)置
公眾號(hào)消息與事件接收URL微信服務(wù)器會(huì)向這個(gè)地址推送一些信息包括(ComponentVerifyTicket、用戶取消應(yīng)用授權(quán)...)
用戶關(guān)注公眾號(hào)或發(fā)送信息對(duì)應(yīng)的信息會(huì)推送到這個(gè)地址。
微信調(diào)用任何接口都需要component_verify_ticket,這一步也是折騰我最久的,主要推送過(guò)來(lái)的信息是加密的我們需要將信息解密,解密出component_verify_ticket將該ticket保存后面需要用到
消息加解密接入指引
這個(gè)頁(yè)面上可以下載對(duì)應(yīng)語(yǔ)言解密的demo,我選擇的是php,貌似有點(diǎn)問(wèn)題,自己改了下可以用了。
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ù)推送的消息都需要解密,該方法都可以解密。 三、獲取第三方平臺(tái)component_access_token (調(diào)用接口需要的基礎(chǔ)參數(shù))"; $from_xml = sprintf($format, $encrypt); $msg = ""; $this->load->library("openweixin/wxBizMsgCrypt"); //改文件在php的demo包里面,加載過(guò)來(lái)就行 $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這個(gè)參數(shù)也需要保存,后面也會(huì)重復(fù)用到。
這個(gè)參數(shù)的有效期是2個(gè)小時(shí),所以定時(shí)每2小時(shí)執(zhí)行下面的程序來(lái)更新component_access_token
public function getToken() { $ticket = $component_verify_ticket; //component_verify_ticket之前已經(jīng)保存了,從數(shù)據(jù)庫(kù)中獲取 $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請(qǐng)求 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 // 超時(shí)時(shí)間(單位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; }獲取預(yù)授權(quán)碼pre_auth_code
有限時(shí)間是10分鐘,所以定時(shí)執(zhí)行每過(guò)10分鐘來(lái)刷新一次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"; }
這是我的個(gè)人網(wǎng)站今日Tech 喜歡科技新聞的朋友可以收藏下。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/22142.html
摘要:微信公眾號(hào)第三方開(kāi)發(fā)平臺(tái)一之前的文章是獲取調(diào)用接口的一些基本參數(shù),繼續(xù)開(kāi)發(fā)微信開(kāi)放平臺(tái)。 微信公眾號(hào)第三方開(kāi)發(fā)平臺(tái)(一) 之前的文章是獲取調(diào)用接口的一些基本參數(shù),繼續(xù)開(kāi)發(fā)微信開(kāi)放平臺(tái)。 一、授權(quán)公眾號(hào),獲取公眾號(hào)的授權(quán)參數(shù) public function tiaozhuan() { $info = getData(system_config, array...
摘要:相關(guān)資料博客微信第三方登錄接口開(kāi)發(fā)端微信掃碼登錄文檔移動(dòng)端網(wǎng)頁(yè)微信公眾平臺(tái)授權(quán)登錄微信開(kāi)放平臺(tái)登錄與微信公眾平臺(tái)授權(quán)登錄區(qū)別在哪微信登錄接口幾個(gè)問(wèn)題微信登錄的和區(qū)別百分號(hào)編碼在線轉(zhuǎn)換第三方登錄 微信登錄接口開(kāi)發(fā)須知 APP登錄接口 PC網(wǎng)站登錄接口 微信移動(dòng)網(wǎng)頁(yè)登錄接口(又稱微信公眾號(hào)授權(quán)登錄) 移動(dòng)端非微信自帶瀏覽不支持微信登錄 微信移動(dòng)網(wǎng)頁(yè)登錄接口(又稱微信公眾號(hào)授權(quán)登錄) ...
摘要:一微信官方文檔微信支付開(kāi)發(fā)流程公眾號(hào)支付首先我們到微信支付的官方文檔的開(kāi)發(fā)步驟部分查看一下需要的設(shè)置。配置微信公眾賬號(hào)支付配置支付類所有方法都在這個(gè)類里發(fā)起支付微信公眾賬號(hào)支付訂單異步回調(diào)這就是這個(gè)所說(shuō)的行代碼解決微信支付。 文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號(hào):好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習(xí)資源。 一、微信官方文檔微信支付開(kāi)發(fā)流程(公眾號(hào)支付) 首先我...
摘要:淺析微信支付前篇大綱本文是淺析微信支付系列文章的第一篇,主要會(huì)介紹一下為何寫下這個(gè)系列以及對(duì)于微信支付的一點(diǎn)小經(jīng)驗(yàn),與君共勉。下面講一下我是如何去學(xué)習(xí)微信支付的。 淺析微信支付:前篇大綱 本文是【淺析微信支付】系列文章的第一篇,主要會(huì)介紹一下為何寫下這個(gè)系列以及對(duì)于微信支付的一點(diǎn)小經(jīng)驗(yàn),與君共勉。 以下會(huì)分幾個(gè)步驟講一下我學(xué)習(xí)微信支付的過(guò)程,也是一部辛酸史,也是希望朋友們不要再次跌進(jìn)...
閱讀 2781·2021-11-19 11:30
閱讀 3066·2021-11-15 11:39
閱讀 1787·2021-08-03 14:03
閱讀 1996·2019-08-30 14:18
閱讀 2052·2019-08-30 11:16
閱讀 2163·2019-08-29 17:23
閱讀 2607·2019-08-28 18:06
閱讀 2540·2019-08-26 12:22