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

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

  1. <?

    php

  2. define("TOKEN", "weixin");
  3. $wechatObj = new wechatCallbackapiTest();
  4. $wechatObj->weixin_run();
  5.  
  6. class wechatCallbackapiTest {
  7.  
  8. private $fromUsername;
  9. private $toUsername;
  10. private $times;
  11. private $keyword;
  12. private $MsgType;
  13.  
  14. public function responseMsg() {
  15. $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
  16. if (!empty($postStr)) {
  17. $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
  18. $this->fromUsername = $postObj->FromUserName;
  19. $this->toUsername = $postObj->ToUserName;
  20. $this->keyword = trim($postObj->Content);
  21. $this->time = time();
  22. $this->MsgType = $postObj->MsgType;
  23. } else {
  24. echo "Pay attention to <a href=‘http://{$_SERVER[‘HTTP_HOST‘]}‘>http://{$_SERVER[‘HTTP_HOST‘]}</a>,thanks!";
  25. exit;
  26. }
  27. }
  28.  
  29. public function weixin_run() {
  30. $this->responseMsg();
  31. if($this->MsgType != ‘event‘) { //attention
  32. $data = $this->getData();
  33. $this->fun_xml("news", $data, count($data));
  34. } else {
  35. $data = $this->getWelData();
  36. $this->fun_xml("text", $data, 1);
  37. }
  38. }
  39.  
  40. //type: text 文本类型, news 图文类型
  41. //text,array(内容),array(ID)
  42. //news,array(array(标题,介绍,图片,超链接),...小于10条),条数
  43. private function fun_xml($type, $value_arr, $count) {
  44. $con="<xml>
  45. <ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName>
  46. <FromUserName><![CDATA[{$this->toUsername}]]></FromUserName>
  47. <CreateTime>{$this->times}</CreateTime>
  48. <MsgType><![CDATA[{$type}]]></MsgType>";
  49. switch($type) {
  50. case "text" :
  51. $con.="<Content><![CDATA[$value_arr]]></Content>";
  52. break;
  53. case "news" :
  54. $con.="<ArticleCount>{$count}</ArticleCount>
  55. <Articles>";
  56. foreach($value_arr as $key => $v) {
  57. $con.="<item>
  58. <Title><![CDATA[{$v[0]}]]></Title>
  59. <Description><![CDATA[{$v[1]}]]></Description>
  60. <PicUrl><![CDATA[{$v[2]}]]></PicUrl>
  61. <Url><![CDATA[{$v[3]}]]></Url>
  62. </item>";
  63. }
  64. $con.="</Articles>";
  65. break;
  66. }
  67. echo $con."</xml>";
  68. }
  69.  
  70. private function getData() {
  71. //数据库通过关键字查询文章
  72.  
  73. //。。。。。

    。。。。

  74. //。

    。。。。

    。。。。。。

  75.  
  76. //返回文章结果的数组
  77. return $data;
  78. }
  79.  
  80. private function getWelData() {
  81. $data = "感谢您关注AndyYang个人博客微信小助手。\r\n".
  82. "回复【1】返回两篇最新文章\r\n".
  83. "回复【2】返回两篇人气文章\r\n".
  84. "回复【3】返回两篇热评文章\r\n".
  85. "回复【4】返回两篇最新技术文章\r\n".
  86. "回复【5】返回两篇最新写作文章\r\n".
  87. "回复其它返回搜索关键字的两篇文章\r\n".
  88. "很多其它精彩内容。尽在:<a href=‘http://www.webyang.net/mobile.php‘>www.webyang.net</a>。亲们,请多多支持哦,谢谢~";
  89. ;
  90. return $data;
  91. }
  92. }

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

。。

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


很多其它请支持:http://www.webyang.net/Html/web/article_118.html

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

上一篇:微信小程序实现简易留言板


下一篇:AndroidUI--SlidingMenu使用例子