亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

關于php微信訂閱號開發之token驗證后自動發送消息給訂閱號但是沒有消息返回的問題

2024-05-04 23:41:12
字體:
來源:轉載
供稿:網友
最近做了個項目,當token驗證之后,發送消息給訂閱號,但是沒有消息返回,下面小編通過本篇文章給大家分享我的解決辦法
 

相信很多人會跟我一樣,token驗證之后,發送消息給訂閱號,沒有消息返回。

以下,說一下我辛苦調試得到的解決辦法:

首先,token驗證:

自己寫的token一直驗證失敗,找了好久,沒有發現bug。實在沒辦法,就用了官方的示例代碼。并且通過示例代碼調試,發現了一個讓我吐血的bug(也不算bug):

token驗證貌似要求字符編碼格式!?。。?/p>

官方的示例代碼,直接上傳到服務器,token直接過!

把官方示例代碼改為UTF-8格式,再上傳覆蓋,token失?。∈。∈?!

后來,把自己寫的修改為ANSI格式還是token失??!醉了醉了!那只好用官方示例代碼。在此,說下,token是一次握手驗證,驗證過一次就不用了。

下面,言歸正傳,貌似偏題了...orz

token驗證之后,直接用官方示例代碼,趕緊測試自己的訂閱號,結果....發出去的消息就跟潑出去的水一樣,什么鬼都沒有返回...orz

又各種找bug,各種群問,各種搜索....歷經本博主九九八十一的努力,終于找出了問題所在(這里是指我自己開發的,并不包括全部,如果你有不同的bug,歡迎交流):

1、最容易被忽視的一個bug,官方給的示例代碼,壓根就沒調用寫好的那個responseMsg()函數!

2、把之前的token代碼注釋,也就是$wechatObj->valid();這行代碼。因為toke驗證那段代碼會有一個echo $echostr,會把responseMsg()函數里的echo $resultStr;(56行)xml格式混亂,輸回給微信服務器就無法識別了(貌似只能識別xml格式,還有json格式)。(token驗證是一次握手驗證,驗證開發者之后,就可以不用了,趕緊讓它消失在我們整潔的代碼orz...)

3、最惡心的一個bug,還是字符編碼問題!orz...xml要求UTF-8編碼,所以,把示例代碼改回UTF-8編碼!這個bug找的讓我崩潰!?。?/p>

下面是我修改后的代碼,能正常運行,無bug,需要的可以參考一下

<?php /** * wechat php test */ //define your token define("TOKEN", "codcodog"); $wechatObj = new wechatCallbackapiTest(); //$wechatObj->valid(); $wechatObj->responseMsg(); class wechatCallbackapiTest {  public function valid()  {   $echoStr = $_GET["echostr"];   //valid signature , option   if($this->checkSignature()){   header('content-type:text');    echo $echoStr;    exit;   }  }  public function responseMsg()  {   //get post data, May be due to the different environments   $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];   //$postStr = file_get_contents("php://input");   file_put_contents("log.txt",$postStr,FILE_APPEND );   //extract post data   if (!empty($postStr)){     /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,     the best way is to check the validity of xml by yourself */     libxml_disable_entity_loader(true);     $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></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()  {   // you must define TOKEN by yourself   if (!defined("TOKEN")) {    throw new Exception('TOKEN is not defined!');   }   $signature = $_GET["signature"];   $timestamp = $_GET["timestamp"];   $nonce = $_GET["nonce"];   $token = TOKEN;   $tmpArr = array($token, $timestamp, $nonce);   // use SORT_STRING rule   sort($tmpArr, SORT_STRING);   $tmpStr = implode( $tmpArr );   $tmpStr = sha( $tmpStr );   if( $tmpStr == $signature ){    return true;   }else{    return false;   }  } } ?>

以上所述是小編給大家分享的php微信訂閱號開發之token驗證后自動發送消息給訂閱號但是沒有消息返回的解決方案,希望大家喜歡。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人h视频在线观看播放| 精品亚洲一区二区三区| 国产69精品久久久久9| 欧美激情女人20p| 国产精品精品一区二区三区午夜版| 国产欧美va欧美va香蕉在| 奇米一区二区三区四区久久| 亚洲欧洲黄色网| 亚洲天堂男人天堂女人天堂| 亚洲精品456在线播放狼人| 伊人青青综合网站| 色婷婷av一区二区三区在线观看| 日韩精品一二三四区| 国产精品吹潮在线观看| xvideos亚洲| 尤物九九久久国产精品的分类| 91九色国产社区在线观看| 欧美午夜美女看片| 97国产精品久久| 欧美极品少妇与黑人| 欧洲美女7788成人免费视频| 日日狠狠久久偷偷四色综合免费| 国产欧美精品在线| 色综合久久中文字幕综合网小说| 日韩美女免费视频| 91国内在线视频| 欧美在线观看视频| 亚洲午夜久久久影院| 国产盗摄xxxx视频xxx69| 久久久久久91香蕉国产| 亚洲国产精品久久精品怡红院| 亚洲国产精品字幕| 国产精品视频永久免费播放| 亚洲aa在线观看| 亚洲一区二区免费| 亚洲国产成人91精品| 一本色道久久88亚洲综合88| 国产精品自产拍在线观| 欧美日韩一区二区三区在线免费观看| 日韩高清中文字幕| 777777777亚洲妇女| 亚洲无线码在线一区观看| 久久九九亚洲综合| 亚洲日韩欧美视频| 精品国产依人香蕉在线精品| 国产亚洲a∨片在线观看| 日韩精品久久久久久久玫瑰园| 亚洲性视频网址| 国产精品吊钟奶在线| 神马久久桃色视频| 91免费综合在线| 国产999精品| 精品视频偷偷看在线观看| 国产日韩欧美电影在线观看| 亚洲综合在线做性| 国产在线观看精品一区二区三区| 自拍亚洲一区欧美另类| 国产精品综合不卡av| www.久久撸.com| 国产suv精品一区二区| 大桥未久av一区二区三区| 久久久国产精彩视频美女艺术照福利| 亚洲精品一二区| 久久精品亚洲国产| 韩国美女主播一区| 91久久精品国产91久久性色| 久久伊人91精品综合网站| 热re99久久精品国产66热| 久久精品国产99国产精品澳门| 色综合老司机第九色激情| 狠狠色香婷婷久久亚洲精品| 在线成人激情视频| 亚洲第一视频网站| 日韩电影免费观看在线观看| 亚洲日本成人女熟在线观看| 成人网中文字幕| 中文字幕亚洲国产| 日韩中文字幕在线| 在线一区二区日韩| 国内精品400部情侣激情| 国产日韩欧美视频在线| 青青在线视频一区二区三区| 亚洲精品一区二区三区不| 亚洲精品福利资源站| 欧美精品九九久久| 欧美在线xxx| 欧美久久久精品| 日韩动漫免费观看电视剧高清| 亚洲女同精品视频| 久久精品2019中文字幕| 日韩av黄色在线观看| 欧美理论片在线观看| 欧美专区在线视频| 国产精品91久久久久久| 国产丝袜视频一区| 91牛牛免费视频| 5252色成人免费视频| 亚洲国产成人精品久久久国产成人一区| 国产有码一区二区| 少妇高潮久久久久久潘金莲| 亚洲xxxx18| 日韩欧美在线视频免费观看| 欧美在线免费视频| 国产亚洲美女久久| 亚洲综合国产精品| 成人精品在线观看| 国产精品9999| 欧美性高跟鞋xxxxhd| 欧美日本高清视频| 国产精品露脸自拍| 亚洲欧美制服中文字幕| 亚洲人av在线影院| 亚洲精品视频播放| 亚洲国产成人久久综合一区| 中文字幕日韩在线播放| 成人亚洲综合色就1024| 日韩欧美精品中文字幕| 亚洲精品日韩久久久| 国产精品久久久久久久久久99| 91国产中文字幕| 免费av在线一区| 久久综合88中文色鬼| 亚洲成人亚洲激情| 欧美日韩国产一中文字不卡| 日韩电影中文字幕在线观看| 欧美中文在线观看| 国产精品久久久久久久久久尿| 亚洲成人动漫在线播放| 国产在线观看精品| 日韩黄色高清视频| 精品亚洲精品福利线在观看| 正在播放亚洲1区| 亚洲男人av在线| 国产精品一区二区久久国产| 这里只有精品丝袜| 国产精品十八以下禁看| 在线观看精品自拍私拍| 国模精品系列视频| 久久久久久久久久国产精品| 国产精品扒开腿做爽爽爽视频| 国产欧美一区二区三区久久人妖| 91午夜在线播放| 欧美高清视频在线播放| 欧美电影在线观看完整版| 日韩在线视频一区| 久久精品色欧美aⅴ一区二区| 久久久女女女女999久久| 久久久久久国产三级电影| 欧美人成在线视频| 欧美精品videossex性护士| 久久夜色撩人精品| 日韩少妇与小伙激情| 亚洲国产一区二区三区四区| 在线视频中文亚洲| 亚洲日本欧美日韩高观看| 欧美另类极品videosbest最新版本| 九九视频这里只有精品| 欧美日韩精品在线播放| 亚洲综合一区二区不卡| 一区二区三区动漫| 伊人久久免费视频| 亚洲天堂影视av| 亚洲成人网在线观看| 97香蕉超级碰碰久久免费软件|