首页 > CMS > 帝国Empire > 正文

帝国cms在微信公众号里面获取不到下载认证码的解决方法

2024-08-28 12:22:51
字体:
来源:转载
供稿:网友

现在很多网站为了获取用户都开始这样使用扫码关注微信公众号才能获取下载码

下载免费模板在微信公众号里面获取下载认证码获取不到的原因

比如我们下载这个模板,

微信里回复了关键字,不回复验证码的原因,是因为我们网站前段时间把php版本升级了7.3

检查了下 微信接口代码

下载免费模板在微信公众号里面获取下载认证码获取不到的原因

因为php7.0版本很多都设置了register_globals禁止,不能用$GLOBALS["HTTP_RAW_POST_DATA"];

需要改成$postStr = file_get_contents("php://input");

下载免费模板在微信公众号里面获取下载认证码获取不到的原因

这样就可以接受到信息了

 PHP对接微信公众号源码 帝国CMS对接微信公众号PHP接口文件[任意CMS均可]

勿喷,不会PHP代码,但是大概看懂了一些。我在之前论坛里有人提供的接口原基础上做了修改。完成了对帝国CMS基础对接功能,
目前已知的问题是,关键字不能回复,本来应该是先判断关键字,再查库的。 这里代码是先查库再判断了,但我技术太烂,尝试修改的时候一直出现报错,所以PHP大神来完善下吧。

本代码已经是成品,复制源代码,新建php文件粘贴进去,替换你的数据库链接信息,与需要查询的表名,上传至你的网站空间,然后微信公众号后台登录,Url填写该php地址,token默认是weixin. 然后就OK了。
 

 

<?phpdefine("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')                                                {                                                //关注后的回复                                                                                                $contentStr = "谢谢关注[寻片]公众号!本公众号提供各种资源搜索。输入电影名,我将回复你电影观看或下载地址。例:【速度与激情】";                                                          $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数据库地址:5506","你的数据库","你的数据库密码");                                                                                                                                        mysql_query("SET NAMES UTF8");                                                                        mysql_query("set character_set_client=utf8");                                                                         mysql_query("set character_set_results=utf8");                                                                        mysql_select_db("你的数据库表名", $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>";                                                                                                                                                                                 //没有查找到的时候的回复                                                                                $title = '未找到结果,请确认有无错别字,或尝试精简搜索字(如您回复的是【速度与激情10】,请尝试【速度与激情】),此外,依次点击两次右上角,选择推荐给朋友,此后,你将可享受神秘特权哦!';                                                                                                                                                                 $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 = '输入你要找的电影名,或点击进入寻片网主页';                                                                                                                                                                 $des1 ="";                                                                                //图片地址                                                                                $picUrl1 ="http://51zhuangbi.cn/help.jpg";                                                                                //跳转链接                                                                                $url="http://51zhuangbi.cn";                                                                                 $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ;                                                                                                                                                         echo $resultStr;                                                         }                                                if($keyword=="菜单")                                                {                                                                                $title = '点击进入主页,右边 点击 菜单图标 “三” 选择你想看的栏目';                                                                                                                                                                 $des1 ="";                                                                                //图片地址                                                                                $picUrl1 ="http://51zhuangbi.cn/help.jpg";                                                                                //跳转链接                                                                                $url="http://51zhuangbi.cn";                                                                                 $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ;                                                                                                                                                         echo $resultStr;                                                         }                                                if($keyword=="联系客服")                                                {                                                                                $title = '联系客服';                                                                                                                                                                 $des1 ="";                                                                                //图片地址                                                                                $picUrl1 ="http://51zhuangbi.cn/d/help.jpg";                                                                                //跳转链接                                                                                $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";                                                                                //跳转链接                                                                                $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";                                                                                //跳转链接                                                                                $url="http://51zhuangbi.cn/misc/message/";                                                                                 $resultStr= sprintf($newsTpl, $fromUsername, $toUsername, $time, $title, $des1, $picUrl1, $url) ;                                                                                                                                                         echo $resultStr;                                                         }                                                                                                $contentStr = "/r/n 输入电影名如:速度与激情7 如果没有具体想看的,请点击进入主页:51zhuangbi.cn";                                                          $msgType = 'text';                                                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);                                                        echo $resultStr;                                                }                                                                                                                                                                                          break;                                        default:                                                break;                                }                                                         }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;        }    }}?>

具体的大家可以多搜索一下,网上也不少卖这个功能的。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表