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

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

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

<?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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/98465.html

(0)
上一篇 2021年8月21日 00:29
下一篇 2021年8月21日 00:29

相关推荐

发表回复

登录后才能评论