摘要:二接收微信調用任何接口都需要這一步也是折騰我最久的,主要推送過來的信息是加密的我們需要將信息解密,解密出將該保存后面需要用到消息加解密接入指引這個頁面上可以下載對應語言解密的我選擇的是,貌似有點問題,自己改了下可以用了。
最近在做一個公眾號的工具,想使用公眾號的權限,第一步就是授權,官方的文檔說的不是很清楚,對于一個剛接觸的開發者看起來是有點吃力的。
一、創建微信第三方應用
說下兩個比較重要的域名設置
公眾號消息與事件接收URL微信服務器會向這個地址推送一些信息包括(ComponentVerifyTicket、用戶取消應用授權...)
用戶關注公眾號或發送信息對應的信息會推送到這個地址。
微信調用任何接口都需要component_verify_ticket,這一步也是折騰我最久的,主要推送過來的信息是加密的我們需要將信息解密,解密出component_verify_ticket將該ticket保存后面需要用到
消息加解密接入指引
這個頁面上可以下載對應語言解密的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 = "接收微信服務推送的消息都需要解密,該方法都可以解密。 三、獲取第三方平臺component_access_token (調用接口需要的基礎參數)"; $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這個參數也需要保存,后面也會重復用到。
這個參數的有效期是2個小時,所以定時每2小時執行下面的程序來更新component_access_token
public function getToken() { $ticket = $component_verify_ticket; //component_verify_ticket之前已經保存了,從數據庫中獲取 $post = array( "component_appid" => $this->appid, //應用詳情中的AppID "component_appsecret" => $this->secret, //應用詳情中的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"; }
//發送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; }獲取預授權碼pre_auth_code
有限時間是10分鐘,所以定時執行每過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"; }
這是我的個人網站今日Tech 喜歡科技新聞的朋友可以收藏下。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22142.html
摘要:微信公眾號第三方開發平臺一之前的文章是獲取調用接口的一些基本參數,繼續開發微信開放平臺。 微信公眾號第三方開發平臺(一) 之前的文章是獲取調用接口的一些基本參數,繼續開發微信開放平臺。 一、授權公眾號,獲取公眾號的授權參數 public function tiaozhuan() { $info = getData(system_config, array...
摘要:相關資料博客微信第三方登錄接口開發端微信掃碼登錄文檔移動端網頁微信公眾平臺授權登錄微信開放平臺登錄與微信公眾平臺授權登錄區別在哪微信登錄接口幾個問題微信登錄的和區別百分號編碼在線轉換第三方登錄 微信登錄接口開發須知 APP登錄接口 PC網站登錄接口 微信移動網頁登錄接口(又稱微信公眾號授權登錄) 移動端非微信自帶瀏覽不支持微信登錄 微信移動網頁登錄接口(又稱微信公眾號授權登錄) ...
摘要:一微信官方文檔微信支付開發流程公眾號支付首先我們到微信支付的官方文檔的開發步驟部分查看一下需要的設置。配置微信公眾賬號支付配置支付類所有方法都在這個類里發起支付微信公眾賬號支付訂單異步回調這就是這個所說的行代碼解決微信支付。 文章有不當之處,歡迎指正,如果喜歡微信閱讀,你也可以關注我的微信公眾號:好好學java,獲取優質學習資源。 一、微信官方文檔微信支付開發流程(公眾號支付) 首先我...
摘要:淺析微信支付前篇大綱本文是淺析微信支付系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經驗,與君共勉。下面講一下我是如何去學習微信支付的。 淺析微信支付:前篇大綱 本文是【淺析微信支付】系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經驗,與君共勉。 以下會分幾個步驟講一下我學習微信支付的過程,也是一部辛酸史,也是希望朋友們不要再次跌進...
閱讀 2772·2021-11-19 11:30
閱讀 3058·2021-11-15 11:39
閱讀 1782·2021-08-03 14:03
閱讀 1985·2019-08-30 14:18
閱讀 2043·2019-08-30 11:16
閱讀 2149·2019-08-29 17:23
閱讀 2597·2019-08-28 18:06
閱讀 2533·2019-08-26 12:22