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


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

    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个人博客微信小助手。 ".
    82. "回复【1】返回两篇最新文章 ".
    83. "回复【2】返回两篇人气文章 ".
    84. "回复【3】返回两篇热评文章 ".
    85. "回复【4】返回两篇最新技术文章 ".
    86. "回复【5】返回两篇最新写作文章 ".
    87. "回复其它返回搜索关键字的两篇文章 ".
    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

  • 相关阅读:
    156
    More Effective C++ 条款24 了解virtual function,multiple inheritance,virtual base classes,runtime type identification的成本
    More Effective C++ 条款23 考虑使用其他程序库
    More Effective C++ 条款22 考虑以操作符复合形式(op=)取代其独身形式(op)
    More Effective C++ 条款21 利用重载技术避免隐式类型转换
    More Effective C++ 条款20 协助完成"返回值优化(RVO)"
    More Effective C++ 条款19 了解临时对象的来源
    More Effective C++ 条款18 分期摊还预期的成本
    More Effective C++ 条款17 考虑使用lazy evaluation(缓式评估)
    More Effective C++ 条款16 谨记80-20法则
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6919875.html
Copyright © 2020-2023  润新知