帝國cms在微信公眾號里面獲取不到下載認(rèn)證碼的解決方法

現(xiàn)在很多網(wǎng)站為了獲取用戶都開始這樣使用掃碼關(guān)注微信公眾號才能獲取下載碼
比如我們下載這個模板,
微信里回復(fù)了關(guān)鍵字,不回復(fù)驗證碼的原因,是因為我們網(wǎng)站前段時間把php版本升級了7.3
檢查了下 微信接口代碼
因為php7.0版本很多都設(shè)置了register_globals禁止,不能用$GLOBALS["HTTP_RAW_POST_DATA"];
需要改成$postStr = file_get_contents("php://input");
這樣就可以接受到信息了
PHP對接微信公眾號源碼 帝國CMS對接微信公眾號PHP接口文件[任意CMS均可]
勿噴,不會PHP代碼,但是大概看懂了一些。我在之前論壇里有人提供的接口原基礎(chǔ)上做了修改。完成了對帝國CMS基礎(chǔ)對接功能,
目前已知的問題是,關(guān)鍵字不能回復(fù),本來應(yīng)該是先判斷關(guān)鍵字,再查庫的。 這里代碼是先查庫再判斷了,但我技術(shù)太爛,嘗試修改的時候一直出現(xiàn)報錯,所以PHP大神來完善下吧。
本代碼已經(jīng)是成品,復(fù)制源代碼,新建php文件粘貼進(jìn)去,替換你的數(shù)據(jù)庫鏈接信息,與需要查詢的表名,上傳至你的網(wǎng)站空間,然后微信公眾號后臺登錄,Url填寫該php地址,token默認(rèn)是weixin. 然后就OK了。
<?php define("TOKEN", "weixin");//自己定義的token 就是個通信的私鑰 $wechatObj = new wechatCallbackapiTest(); //$wechatObj->valid(); //驗證 初次對接時不能注釋掉 否則不能通過 $wechatObj->responseMsg(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ libxml_disable_entity_loader(true); $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $event = $postObj->Event; $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>"; switch($postObj->MsgType) { case 'event': if($event == 'subscribe') { //關(guān)注后的回復(fù) $contentStr = "謝謝關(guān)注[尋片]公眾號!本公眾號提供各種資源搜索。輸入電影名,我將回復(fù)你電影觀看或下載地址。例:【速度與激情】 "; $msgType = 'text'; $textTpl = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $textTpl; } break; case 'text': if(preg_match('/[\x{4e00}-\x{9fa5}]+/u',$keyword)) { $newsTplHeader = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>%s</ArticleCount> <Articles>"; $newsTplItem = "<item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item>"; $newsTplFooter="</Articles> </xml>"; $con = mysql_connect("xxxxx數(shù)據(jù)庫地址:5506","你的數(shù)據(jù)庫","你的數(shù)據(jù)庫密碼"); mysql_query("SET NAMES UTF8"); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_results=utf8"); mysql_select_db("你的數(shù)據(jù)庫表名", $con); $sql = "SELECT * FROM `phome_ecms_news` WHERE `title` like '%".$keyword."%' LIMIT 0 , 1"; $result = mysql_query($sql); $itemCount = 0; if(mysql_num_rows($result)>0){ while($row = mysql_fetch_assoc($result)) { $title = "".$row['title'].""; $des =""; $url ="http://51zhuangbi.cn".$row['titleurl']; $picUrl1 ="http://51zhuangbi.cn".$row['titlepic'].""; $contentStr .= sprintf($newsTplItem, $title, $des, $picUrl1, $url); ++$itemCount; } $newsTplHeader = sprintf($newsTplHeader, $fromUsername, $toUsername, $time, $itemCount); $resultStr = $newsTplHeader. $contentStr. $newsTplFooter; echo $resultStr; } else { $newsTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> </Articles> </xml>"; //沒有查找到的時候的回復(fù) $title = '未找到結(jié)果,請確認(rèn)有無錯別字,或嘗試精簡搜索字(如您回復(fù)的是【速度與激情10】,請嘗試【速度與激情】),此外,依次點擊兩次右上角,選擇推薦給朋友,此后,你將可享受神秘特權(quán)哦!'; $des1 =""; $picUrl1 ="http://51zhuangbi.cn/d/weizhaodao.jpg"; $url="http://51zhuangbi.cn/misc/message/"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } mysql_close($con); } else { $newsTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> </Articles> </xml>"; if($keyword=="help") { $title = '輸入你要找的電影名,或點擊進(jìn)入尋片網(wǎng)主頁'; $des1 =""; //圖片地址 $picUrl1 ="http://51zhuangbi.cn/help.jpg"; //跳轉(zhuǎn)鏈接 $url="http://51zhuangbi.cn"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } if($keyword=="菜單") { $title = '點擊進(jìn)入主頁,右邊 點擊 菜單圖標(biāo) “三” 選擇你想看的欄目'; $des1 =""; //圖片地址 $picUrl1 ="http://51zhuangbi.cn/help.jpg"; //跳轉(zhuǎn)鏈接 $url="http://51zhuangbi.cn"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } if($keyword=="聯(lián)系客服") { $title = '聯(lián)系客服'; $des1 =""; //圖片地址 $picUrl1 ="http://51zhuangbi.cn/d/help.jpg"; //跳轉(zhuǎn)鏈接 $url="http://51zhuangbi.cn/misc/message/"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } if($keyword=="自助更新") { $title = '自助更新入口'; $des1 =""; //圖片地址 $picUrl1 ="http://51zhuangbi.cn/d/help.jpg"; //跳轉(zhuǎn)鏈接 $url="http://51zhuangbi.cn/misc/message/"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } if($keyword=="留言") { $title = '看片留言:點擊進(jìn)入'; $des1 =""; //圖片地址 $picUrl1 ="http://51zhuangbi.cn/d/help.jpg"; //跳轉(zhuǎn)鏈接 $url="http://51zhuangbi.cn/misc/message/"; $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ; echo $resultStr; } $contentStr = "\r\n 輸入電影名如:速度與激情7 如果沒有具體想看的,請點擊進(jìn)入主頁:51zhuangbi.cn"; $msgType = 'text'; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } break; default: break; } }else { echo "你好!歡迎進(jìn)微信公眾號"; 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; } } } ?>
具體的大家可以多搜索一下,網(wǎng)上也不少賣這個功能的。
相關(guān)文章
帝國CMS根據(jù)內(nèi)容正文字段[newstext]批量獲取描述簡介字段[smalltext]的
這篇文章主要介紹了帝國CMS根據(jù)內(nèi)容正文字段[newstext]批量重新生成簡介字段[smalltext]的方法,需要的朋友可以參考下2023-06-26帝國CMS 7.2和7.5適用的火車頭采集免登陸發(fā)布模塊配置方法詳解(親測可
帝國cms7.2版本開始增加了金剛模式,登錄發(fā)布有難度。親測可用的帝國CMS 7.2/7.5適用免登陸新聞發(fā)布模塊插件配合火車采集器,可以解決這類問題??胺Q完美2022-04-21帝國cms高危SQL注入漏洞(盲注)系統(tǒng)自帶RepPIntvar過濾函數(shù)使用方法
帝國cms開發(fā)的時候要注意一些危險的注入漏洞,防止被黑,RepPIntvar為系統(tǒng)自帶函數(shù)可以起到過濾字符的作用,下面就為大家介紹一下使用方法2021-07-26- 帝國cms后臺啟用SESSION驗證所有的登錄信息都是保存在服務(wù)器端的,尤其是公共場所登錄用默認(rèn)的cookies是不安全的2021-07-26
帝國CMS7.2版升級到7.5版的詳細(xì)步驟方法(已測)
最近需要將老版本的帝國cms將7.2升級到7.5版本,參考這篇文章完美升級,特分享一下給需要的朋友2020-08-02帝國cms常用標(biāo)簽調(diào)用方法(靈動標(biāo)簽和萬能標(biāo)簽的調(diào)用方法)
整理了一些常用的帝國CMS調(diào)用,靈動標(biāo)簽和萬能標(biāo)簽的調(diào)用方法舉例,包括幻燈片、標(biāo)題、一級欄目、二級欄目、帶模版的友情鏈接(下拉菜單)、判斷內(nèi)容頁字段為空時是如何調(diào)用2020-02-04帝國cms網(wǎng)站地圖sitemap.xml的制作方法
這篇文章主要介紹了帝國cms網(wǎng)站地圖sitemap.xml的制作方法,需要的朋友可以參考下2020-02-04帝國CMS數(shù)據(jù)更新中心設(shè)置教程(更新網(wǎng)站細(xì)節(jié))
在使用帝國cms的時候有時候需要把前臺數(shù)據(jù)都更新一下,那么就可以參考下面的文章了,要不漏掉了部分就達(dá)不到更新的目地了2020-02-04- 今天接到網(wǎng)友詢問怎么修改后臺登錄界面及后臺界面,特把方法分享出來需要的朋友可以參考下2020-02-04
- 最近仿站團(tuán)隊接到很多仿站客戶訂單,這里面有一個這樣的功能,表單提交,今天花時間寫個教程給大家,需要的朋友可以參考下2020-02-02