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

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

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

  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

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有2条评论

昵称:
邮箱:

  • 最新评论

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