微信開放第三方API接口,
申請地址:
官方提供PHP開發代碼下載: 點此下載
如果你的微信接口頁面沒有做好,提交保存的時候,會提示:驗證Token失敗。這個錯誤是因為,你的接口頁面還沒有反饋正確的信息給微信接口。微信在教程方面還做得不夠成熟,就一個PHP示例,還是有問題的,在下篇文章我會講到這個錯誤在哪。微信官方也沒有跟大家說清楚怎么才能是token驗證成功。下面我將給出示例告訴大家如何通過token驗證。
譬如:微信接口頁面是http://bbhet.com 默認頁面是weixin.php,我們只需要把weixin.php的代碼改為, 然后放到你得網站根目錄:
官方下載地址 http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html
方法一: 簡單的PHP實現Token驗證
- <?php
- //1. 將timestamp , nonce , token 按照字典排序
- $timestamp = $_GET['timestamp'];
- $nonce = $_GET['nonce'];
- $token = "你自定義的Token值 用於驗證";
- $signature = $_GET['signature'];
- $array = array($timestamp,$nonce,$token);
- sort($array);
- //2.將排序后的三個參數拼接后用sha1加密
- $tmpstr = implode('',$array);
- $tmpstr = sha1($tmpstr);
- //3. 將加密后的字符串與 signature 進行對比, 判斷該請求是否來自微信
- if($tmpstr == $signature)
- {
- echo $_GET['echostr'];
- exit;
- }

方法二: 封裝類的代碼實現Token驗證
- <?php
- /**
- * wechat php test
- */
- //define your token
- define("TOKEN", "weixin");
- $wechatObj = new wechatCallbackapiTest();
- $wechatObj->valid();
- class wechatCallbackapiTest
- {
- public function valid()
- {
- $echoStr = $_GET["echostr"];
- //valid signature , option
- if($this->checkSignature()){
- echo $echoStr;
- exit;
- }
- }
- public function responseMsg()
- {
- //get post data, May be due to the different environments
- $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
- //extract post data
- if (!empty($postStr)){
- $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
- $fromUsername = $postObj->FromUserName;
- $toUsername = $postObj->ToUserName;
- $keyword = trim($postObj->Content);
- $time = time();
- $textTpl = "<xml>
- <ToUserName><![CDATA[%s]]></ToUserName>
- <FromUserName><![CDATA[%s]]></FromUserName>
- <CreateTime>%s</CreateTime>
- <MsgType><![CDATA[%s]]></MsgType>
- <Content><![CDATA[%s]]></Content>
- <FuncFlag>0</FuncFlag>
- </xml>";
- if(!empty( $keyword ))
- {
- $msgType = "text";
- $contentStr = "Welcome to wechat world!";
- $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
- echo $resultStr;
- }else{
- echo "Input something...";
- }
- }else {
- echo "";
- exit;
- }
- }
- private function checkSignature()
- {
- $signature = $_GET["signature"];
- $timestamp = $_GET["timestamp"];
- $nonce = $_GET["nonce"];
- $token = TOKEN;
- $tmpArr = array($token, $timestamp, $nonce);
- sort($tmpArr);
- $tmpStr = implode( $tmpArr );
- $tmpStr = sha1( $tmpStr );
- if( $tmpStr == $signature ){
- return true;
- }else{
- return false;
- }
- }
- }
- ?>
http://www.wxapp-union.com/article-2771-1.html?utm_source=QQqun
消息推送配置Token令牌錯誤@Author GQ 2017年07月26日 本想在微信小程序中接入上傳圖片到阿里雲功能,小程序中查詢很多資料還是沒能將圖片轉成流上傳, 所以無奈只能借助小程序官方API中客服轉發功能上傳素材間接實現: ...
<h1 id="微信
小程序消息推送配置token令牌錯誤" style="margin: 0.8em 0px; padding: 0px; box-sizing: border-box; font-weight: 100; line-height: 1.3em;">[微信小程序]消息推送配置Token令牌錯誤
Token校驗失敗,請檢查確認 如下圖
然后就可以看着 消息配置指南 操作了,這里我詳細在用大白話說下,官方給的是PHP的代碼…
2. 大概了解了參數我們這個接口就好寫多了,我們屢一下這幾個參數的處理邏輯; 1) 還記得上面自己填寫的 2) 將 3) 排序后將這三個參數對應的值,只要值,拼接成string字符串; 4) 將拼接好的字符串SHA1加密,注意要小寫字母,假設返回的string我命名為 5) 比較參數
將寫好的接口發布到服務器上,然后在微信的消息配置頁面填好信息,點擊 官方給的PHP,我這二吊子水平用.Net寫的代碼給大家做參考:
|