<option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
<output id="tpnx7"></output>
<output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    首页 > 上网技巧 > 电脑小技巧 > 织梦dedecms集成微信公众平台功能

    织梦dedecms集成微信公众平台功能

    时间:2019-05-09 09:50 作者:QQ地带 我要评论

    前段时间弄 dedecms,微信公众号那么火,就想集成下,百度搜了下教程很多,大体都差不多,结果用了后不行,在公众号里回复关键词后,乱码,乱码,乱码,更有的教程代码贴上之后直接不回复,无论你怎么发就是不回复你,很是蛋疼,下面中狐博主把 18 年测试成功的代码贴上来,至于怎么注册微信公众号等就不发了,不会的自行百度。将代码保存为 weixin.php 放 plus 下就好
     
    <?php define("TOKEN", "你的token名字"); require_once(dirname(__FILE__)."/../include/common.inc.php"); $dsql = new DedeSql(false); $wechatObj = new wechatCallback(); $wechatObj->valid();
     
    class wechatCallback
    {
    private $items = '';
    private $articleCount = 0;
    private $keyword = '';
     
    public function valid()
    {
    $echoStr = $_GET["echostr"];
     
    //valid signature , option
    if($this->checkSignature()){
    echo $echoStr;
    $this->responseMsg();
     
    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;
    $this->keyword = trim($postObj->Content);
     
    $time = time();
    $textTpl = "
    <![CDATA[".$fromUsername."]]>
    <![CDATA[".$toUsername."]]>
    ".$time."
    <![CDATA[text]]>
    <![CDATA[%s]]>
    0
    ";
    $picTpl = "
    <![CDATA[".$fromUsername."]]>
    <![CDATA[".$toUsername."]]>
    ".$time."
    <![CDATA[news]]>
     
    %d
     
    %s
     
    1
    ";
    if($this->keyword == 'hi' || $this->keyword == '您好' || $this->keyword == '你好' ||$this->keyword ==
     'hello2bizuser' ){
    $contentStr = "输入关键字开始搜索!";//自定义欢迎回复;
    echo sprintf($textTpl, $contentStr);
    }else if( !empty( $this->keyword )){
    $this->search();
    if($this->articleCount == 0){
    $contentStr = "抱歉,没有找?#25509;搿緖$this->keyword}】相关的文章,要不你更换一下关键字,可能就有结果了哦  :-)  ";
    echo sprintf($textTpl, $contentStr);
    }else{
    echo sprintf($picTpl,$this->articleCount,$this->items);
    }
    }
     
    }else {
    echo "";
    exit;
    }
    }
     
    private function search(){
    global $dsql;
    $weixin_posts = $dsql->SetQuery("Select * From `dede_archives` where title like '%".$this->keyword."%'
     order by id desc LIMIT 0, 5");
    $items = '';
    $dsql->Execute();
     
    while($weixin_post=$dsql->GetObject()){
    $title =$weixin_post->title;
    $excerpt = $weixin_post->description ;//获取摘要
    $thumb = $weixin_post->litpic ;//获取缩略图;
    $link = '/m/view.php?aid='.$weixin_post->id;
    $items = $items . $this->get_item($title, $excerpt, $thumb, $link);
    $this->articleCount++;
    }
    if($this->articleCount > 5) $this->articleCount = 5;
     
    $this->items = $items;
    }
     
    private function get_item($title, $description, $picUrl, $url){
    if(!$description) $description = $title;
     
    return
    '
     
    <![CDATA['.$description.']]>
    <![CDATA[http://'.$_SERVER['HTTP_HOST'].$picUrl.']]>
    <![CDATA[http://'.$_SERVER['HTTP_HOST'].$url.']]>
     
    ';
    }
     
    private function checkSignature()
    {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
     
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
     
    if( $tmpStr == $signature ){
    return true;
    }else{
    return false;
    }
    }
    }
    重要第一点
    $this->keyword = trim($postObj->Content);这段代码解决的乱码问题。我的是 utf-8 版本的。
    重要第二点
    sort($tmpArr, SORT_STRING);
    这段代码是解决的有时收到信息有时收不到信息,这个在 14 年的时候微信升级,对排序算法进行了修改,原有的 sort($tmpArr)修改为 sort($tmpArr, SORT_STRING),网上教程都说 14 年之前没升级的教程,所以很多朋友用了后有时收到信息有时收不到信息。
    重要第三点
    $link = ‘/m/view.php?aid=’.$weixin_post->id;
    如果在微信里打开,肯定打开的是手机版,所以如果你的手机版是在更目录下的 m 文件夹就要如上填写,这个跳转到手机版根据不同?#37027;?#20917;修改。

    标签: DedeCMS
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%

    Google提供的广告

    广东十分快乐开奖结果
    <option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
    <output id="tpnx7"></output>
    <output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    <option id="tpnx7"><p id="tpnx7"><pre id="tpnx7"></pre></p></option>
    <output id="tpnx7"></output>
    <output id="tpnx7"><ruby id="tpnx7"></ruby></output>
    <output id="tpnx7"></output><acronym id="tpnx7"><button id="tpnx7"><div id="tpnx7"></div></button></acronym><code id="tpnx7"><menuitem id="tpnx7"></menuitem></code>

    山东快乐扑克3开奖号码 重庆快乐十分竖屏走势图 北赛车pk10直播 中国福彩双色球基本走势图 急速赛车开奖直播 京东彩票是正规的吗 中国彩民更懂彩吧 福彩中心近10期开机号 福建11选5投注 广西快乐双彩预测号码 880特码报报图 一尾中特连准23一期在哪里 大乐透开结果 MG电子注册送38 大乐透旋转矩阵法