现在微信公众号很火,基本是个网站都会再运营一个公众号,因此我们用dedecms建站也需要与时俱进对接进入公众号功能,在公众号发布文章,提高用户粘度
把以下代码保存为winxin.php放到dede程序的plus目录下.
代码如下
查看源码 打印代码帮助define("TOKEN", "weixin");require_once(dirname(__FILE__)."/..//common.inc.php");$dsql = new DedeSql(false);$wechatObj = new wechatCallback();$wechatObj->valid();class wechatCallback{private $items = '';private $articleCount = 0;private $key = '';public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($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 dataif (!empty($postStr)){$postObj = simpleXML_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$this->keyword = strtolower(trim(("UTF-8","gb2312",$postObj->Content)));$time = time();$textTpl = "".$fromUsername."]]>".$toUsername."]]>".$time."0";$picTpl = "".$fromUsername."]]>".$toUsername."]]>".$time."%d%s1";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 = "抱歉,没有找到与【{$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 = '/plus/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''.$description.']]>'.$_SERVER['HTTP_HOST'].$picUrl.']]>'.$_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);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;
新闻热点
疑难解答