微信公共平台开发接口(三)

AndyYang| 阅读:766 发表时间:2014-08-13 22:06:57 微信平台
摘要:很久没写微信公众号的文章了,而且因为是自己是订阅号,所以研究也告一段落了,但还是把自己仅有的一些功能的完整代码共享出来。希望大家一起进步:

很久没写微信公众号的文章了,而且因为是自己是订阅号,所以研究也告一段落了,但还是把自己仅有的一些功能的完整代码共享出来。希望大家一起进步:

<?php
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->weixin_run();

class wechatCallbackapiTest {

    private $fromUsername;
    private $toUsername;
    private $times;
    private $keyword;
    private $MsgType;

    public function responseMsg() {
		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
		if (!empty($postStr)) { 
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $this->fromUsername = $postObj->FromUserName;
            $this->toUsername   = $postObj->ToUserName;
            $this->keyword      = trim($postObj->Content);
            $this->time         = time();
            $this->MsgType      = $postObj->MsgType;
        } else {
        	echo "Pay attention to <a href='http://{$_SERVER['HTTP_HOST']}'>http://{$_SERVER['HTTP_HOST']}</a>,thanks!";
        	exit;
        }
    }

    public function weixin_run() {
        $this->responseMsg();
        if($this->MsgType != 'event') { //attention
            $data = $this->getData();
	        $this->fun_xml("news", $data, count($data)); 
        } else {
            $data = $this->getWelData();
	        $this->fun_xml("text", $data, 1); 
        }
    }

	//type: text 文本类型, news 图文类型
	//text,array(内容),array(ID)
	//news,array(array(标题,介绍,图片,超链接),...小于10条),条数
	private function fun_xml($type, $value_arr, $count) {
	    $con="<xml>
			  <ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName>
			  <FromUserName><![CDATA[{$this->toUsername}]]></FromUserName>
			  <CreateTime>{$this->times}</CreateTime>
			  <MsgType><![CDATA[{$type}]]></MsgType>";
				
        switch($type) {
	        case "text" : 
		    $con.="<Content><![CDATA[$value_arr]]></Content>";
		        break;
		    case "news" : 
		    $con.="<ArticleCount>{$count}</ArticleCount>
				   <Articles>";
		    foreach($value_arr as $key => $v) {
            $con.="<item>
		       	   <Title><![CDATA[{$v[0]}]]></Title> 
		       	   <Description><![CDATA[{$v[1]}]]></Description>
		       	   <PicUrl><![CDATA[{$v[2]}]]></PicUrl>
		       	   <Url><![CDATA[{$v[3]}]]></Url>
		       	   </item>";
		    }
		    $con.="</Articles>";
		        break;
	    }
	    echo $con."</xml>";
	}

    private function getData() {
        //数据库通过关键字查询文章

        //。。。。。。。。。。。。
        //。。。。。。。。。。。。

        //返回文章结果的数组
        return $data; 
    }

    private function getWelData() {
        $data = "感谢您关注AndyYang个人博客微信小助手。\r\n".
                    "回复【1】返回两篇最新文章\r\n".
                    "回复【2】返回两篇人气文章\r\n".
                    "回复【3】返回两篇热评文章\r\n".
                    "回复【4】返回两篇最新技术文章\r\n".
                    "回复【5】返回两篇最新写作文章\r\n".
                    "回复其他返回搜索关键字的两篇文章\r\n".
                    "更多精彩内容,尽在:<a href='http://www.webyang.net/mobile.php'>www.webyang.net</a>。亲们,请多多支持哦,谢谢~";
                ;
        return $data;
    }
		
}

老实说很想弄个服务号玩玩,自定义菜单是没什么技术含量的,但是后面的微信支付之类,服务号仅有的服务,还是挺值得去尝试下的。。。

也希望大家支持微信号:webyangnet

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:

已有2条评论

昵称:
邮箱:

  • 最新评论

微擎2015-09-21 21:11:20
对于初学者还是挺不错的,不过微信第三方开发的时代已经过去了!
微虫2014-08-16 11:13:33
最近在接触微信,貌似有点out了,不过博主的文章让鄙人受益匪浅~
若兰网 - www.rolan.wang
反馈
微信订阅号