这次我分享的笔记主要是一些细小的功能点的实现。

首先我画了一个图解释了我做的思路,如何处理收到text文本消息。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

针对这里可能使用缓存会比较好,但是百度云账号的缓存要收费。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

首先我们接着上面用户刚订阅你们消息的时候返回消息的处理,效果如下

private function receiveEvent($object){$contentStr = "";switch($object -> Event){
//注意这里是订阅消息微信给你提供的定义的事件case "subscribe"://关注後自动推送消息$contentStr = '感谢您的关注/::)
快递查询请#加上快递名称前两个汉字,加单号,如#申通123456789
图书馆查询,请#加书名,如#node开发指南
天气查询,点下面加符号,发送地址位置即可。';break;}
//返回消息到模板$resultStr = $this -> transmitText($object, $contentStr);return $resultStr;}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

第二我接着我上次那个用户发送地理位置信息然后返回天气的处理。


   private function receiveLocation($object){$funcFlag = 0;
//获取经纬度,详情可以参考百度地图APi$latitude = $object->Location_X;$longitude = $object->Location_Y;$contentStr = "";$resultStr = "";$weatherUrl = "http://api.map.baidu.com/telematics/v2/weather?location={$longitude},{$latitude}&output=xml&ak=CC56cc354df507bfd5fe907241cfb68e";
//下面的数据就是根据XML数据的格式来进行判断和获取$weatherApiStr = file_get_contents($weatherUrl);$weatherApiObj = simplexml_load_string($weatherApiStr);$placeObj = $weatherApiObj->currentCity; //读取城市$todaydata = $weatherApiObj->results->result[0]->data;$todayweather = $weatherApiObj->results->result[0]->weather;$todaywind = $weatherApiObj->results->result[0]->wind;$todaytemperature = $weatherApiObj->results->result[0]->temperature;//数据以用形参的方式传给模板进行封装。$contentStr = "{$placeObj}{$todaydata}天气{$todayweather},风力{$todaywind},温度{$todaytemperature}";$resultStr = $this -> transmitText($object, $contentStr);return $resultStr;}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

接下来我展示下我查询快递,图书。

代码写的效率很差

private function receiveText($object){$fromUsername = trim($object->FromUserName);$toUserName = trim($object->ToUserName);$funcFlag = 0;$keyword = trim($object->Content);//获取消息内容$str1 = strtolower($keyword);
//中文字符串的处理$str2 = mb_substr($str1,1,20,'utf-8');
//去第一个字符串的#的$str3 = substr($str1,0,1);$str4 = mb_substr($str1,0,3,'utf-8');$resultStr = "";$contentStr = "";//返回数据//设置回复关键词18if($str3 == "#"){$strkuaidiType = mb_substr($str1,1,2,'utf-8');$strkuadiNumber = mb_substr($str1,3,20,'utf-8');switch($str4){case "#申通":$kuadiUrl = "http://www.aikuaidi.cn/rest/?key=2ef070342b7b4cd2b9fc1fd401c013ff&order={$strkuadiNumber}&id=shentong&show=xml";$kuaidiStr = file_get_contents($kuadiUrl);$kuaidiObj = simplexml_load_string($kuaidiStr);foreach($kuaidiObj->Data->Order as $a){foreach($a->Time as $b){foreach($a->Content as $c){$m.="{$b}{$c}";}    }}$contentStr = "你的{$strkuaidiType}快递,单号为{$strkuadiNumber}{$m}";break;case "#圆通":$kuadiUrl = "http://www.aikuaidi.cn/rest/?key=2ef070342b7b4cd2b9fc1fd401c013ff&order={$strkuadiNumber}&id=yuantong&show=xml";$kuaidiStr = file_get_contents($kuadiUrl);$kuaidiObj = simplexml_load_string($kuaidiStr);foreach($kuaidiObj->Data->Order as $a){foreach($a->Time as $b){foreach($a->Content as $c){$m1.="{$b}{$c}";} }}$contentStr = "你的{$strkuaidiType}快递,单号为{$strkuadiNumber}{$m1}";break;case "#韵达":$kuadiUrl = "http://www.aikuaidi.cn/rest/?key=2ef070342b7b4cd2b9fc1fd401c013ff&order={$strkuadiNumber}&id=yunda&show=xml";$kuaidiStr = file_get_contents($kuadiUrl);$kuaidiObj = simplexml_load_string($kuaidiStr);foreach($kuaidiObj->Data->Order as $a){foreach($a->Time as $b){foreach($a->Content as $c){$m1.="{$b}{$c}";}   }}$contentStr = "你的{$strkuaidiType}快递,单号为{$strkuadiNumber}{$m1}";break;case "#中通":$kuadiUrl = "http://www.aikuaidi.cn/rest/?key=2ef070342b7b4cd2b9fc1fd401c013ff&order={$strkuadiNumber}&id={$strkuaidiType}&show=xml";$kuaidiStr = file_get_contents($kuadiUrl);$kuaidiObj = simplexml_load_string($kuaidiStr);foreach($kuaidiObj->Data->Order as $a){foreach($a->Time as $b){foreach($a->Content as $c){$m1.="{$b}{$c}";}    }}$contentStr = "你的{$strkuaidiType}快递,单号为{$strkuadiNumber}{$m1}";break;case "#顺丰":$kuadiUrl = "http://www.aikuaidi.cn/rest/?key=2ef070342b7b4cd2b9fc1fd401c013ff&order={$strkuadiNumber}&id=shunfeng&show=xml";$kuaidiStr = file_get_contents($kuadiUrl);$kuaidiObj = simplexml_load_string($kuaidiStr);foreach($kuaidiObj->Data->Order as $a){foreach($a->Time as $b){foreach($a->Content as $c){$m1.="{$b}{$c}";}    }}$contentStr = "你的{$strkuaidiType}快递,单号为{$strkuadiNumber}{$m1}";break;default:$libUrl = "http://opac.niit.edu.cn/opac/search_rss.php?location=ALL&title={$str2}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=yes";$libstr = file_get_contents($libUrl);$libObj = simplexml_load_string($libstr);//get XMLfor ($i=0; $i<=5; $i++){$contentStr.="{$libObj->channel->item[$i]->title} {$libObj->channel->item[$i]->link} ";}break;}$resultStr = $this -> transmitText($object, $contentStr, $funcFlag);return $resultStr;}
}

代码大家看一下我用的是爱快递的API,最后今天就到这了,买了个大水表,累死了。

个人新开的csdn博客:http://blog.csdn.net/qazwsx2345,欢迎支持。

---------------------------------------------------------------------------------------------------------

最后致谢Treey,from  Http://www.gbtags.com

微信公众平台开发笔记(三)相关推荐

  1. 微信公众平台开发笔记

    从寒假自己就开始拿微信公众平台开发当练手,到现在断断续续已经挺久了,只不过忙于其他事写代码的时间还是很少,但整体的框架已经搭起来了.公众微信号就不用给了,我不求粉,只是来总结一下技术问题,再拖很多东西 ...

  2. 微信公众平台开发(三)——微信二维码生成扫码关注

    微信二维码生成是指后端发送请求向微信服务器申请公众号的二维码,用户如果未关注,进行扫描改二维码后即跳转道公众号的关注页面:如果已经关注,扫描二维码后直接进入该微信公众号.当用户扫码时,微信服务器会向后 ...

  3. 结合百度云平台和微信公众平台开发(三)

    这次我按照柳峰前辈的建议,天气数据查询来源于"中国气象网",第三篇那个只能算一个Demo,这次我们将对这部分功能完整化.描述:发送"天气绵阳","天气 ...

  4. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  5. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  6. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  7. 微信公众平台开发实战

    第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发 第三篇 :微信公众平台开发实战Java版之 ...

  8. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  9. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分   介绍微信公众号的一些简单 ...

最新文章

  1. 排序算法---插入排序(java版)
  2. Failed to load module script: The server responded with a non-JavaScript MIME type of “text/plain“.
  3. 前后端分离实践(试探篇)
  4. Py之pyserial:Python的pyserial库的简介、安装、使用方法之详细攻略
  5. 【DEMO 0074】进程创建与消亡
  6. VC++ MSDN中的 _beginthreadex与_endthreadex 的使用例子
  7. [剑指Offer] 25.复杂链表的复制
  8. 利用bobo-browse 实现lucene的分组统计功能
  9. 文字生成视频,只需一步(附论文下载)
  10. Mac 下配置XAMPP
  11. 启动Tomcat出现Using CATALINA_BASE
  12. [转]FCKeditor在ASP配置环境中的使用
  13. 【转】gem install libv8 错误
  14. 台式计算机提示内存不足怎么办,台式电脑提示内存不足怎么回事
  15. 关于表格冻结行和列的方法
  16. win7无法查看win10工作组计算机,解决:win7系统工作组计算机无法访问我的计算机(图文)...
  17. 建设一个网站需要多少钱?
  18. linux查看80端口连接ip,Linux通过netstat命令查看80端口连接数的方法
  19. 阻碍你成功的五个不良习惯
  20. swagger工具编写接口文档

热门文章

  1. PS|如何制作出‘粒子消失特效’的效果呢
  2. S7200源码及PCB文件,S7 224XP 226图纸
  3. 无刷直流电机驱动器性能指标
  4. html 字体思源_css设置文字思源雅黑,分为medium, regular, light
  5. Javascript 关联数组简介
  6. iphone14全系列参数对比 苹果14防水吗
  7. 使用html简单仿写一个静态的绝地求生官网首页
  8. 黑苹果OC引导,登录iCloud出现“无法联系服务器”,解决方法
  9. 南京理工计算机专业复试科目,2020南京理工大学计算机考研初试科目、参考书目、复试详情汇总...
  10. 山东科技大学计算机专业2019录取分数线,山东科技大学2019年本科录取分数线