php微信公众开发之获取周边酒店信息的方法


Posted in PHP onDecember 22, 2014

本文实例讲述了php微信公众开发之获取周边酒店信息的方法。分享给大家供大家参考。具体分析如下:

关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下:

<?php 

 //将提交过来的信息接收 

$signature = $_GET['signature']; 

 $timestamp = $_GET['timestamp']; 

 $nonce = $_GET['nonce']; 

 $echostr = $_GET['echostr']; 

 $token = "3water.com"; 

 //判断接入网站 

 

 //进行字典排序 

 $arr = array($token,$timestamp,$nonce); 

 

 sort($arr); 

 

 //完成字符串的拼接和sha1加密 

 $result = sha1(join($arr)); 

 //判断生成的字符串和$signature是否相等,如果相等,直接输出$echostr,这样网站接入成功 

 if($result==$signature){ 

 echo $echostr; 

 } 

 

 //接收微信公众账号接收到的信息 

 $poststr = $GLOBALS["HTTP_RAW_POST_DATA"]; 

 

 $xmlObj = simplexml_load_string($poststr,'SimpleXMLElement',LIBXML_NOCDATA); 

 $ToUserName = $xmlObj->ToUserName; 

 $FromUserName = $xmlObj->FromUserName; 

 $CreateTime = $xmlObj->CreateTime; 

 $MsgType = $xmlObj->MsgType; 

 $Content = $xmlObj->Content; 

 

 if($MsgType=='location'){ 

 $Location_X = $xmlObj->Location_X; 

 $Location_Y = $xmlObj->Location_Y; 

 $Scale = $xmlObj->Scale; 

 $Label = $xmlObj->Label; 

 

 $urlstr = "http://api.map.baidu.com/place/v2/search?&query=酒店&location=".$Location_X.",".$Location_Y."&radius=5000&output=json&ak=DESY8unmZnUlLB0mlowjuiRr";  //此处ak参数需要个人的百度开发序列号,自己去百度申请下就好了 

 $jsonstr = file_get_contents($urlstr); 

 $json = json_decode($jsonstr,true); 

 

 $pic_640 = "http://api.map.baidu.com/staticimage?width=640&height=320¢er=".$Location_Y.",".$Location_X."&zoom=15&markers=".$Location_Y.",".$Location_X."&markerStyles=l,"; 

 $pic_80 = "http://api.map.baidu.com/staticimage?width=80&height=80¢er=".$Location_Y.",".$Location_X."&zoom=15&markers=".$Location_Y.",".$Location_X."&markerStyles=l,"; 

 $p_640 = file_get_contents($pic_640); 

 file_put_contents('./images/640_'.$FromUserName.".png",$p_640); 

 $p_80 = file_get_contents($pic_80); 

 file_put_contents('./images/80_'.$FromUserName.".png",$p_80); 

 echo pic_send($json['results']); 

 } 

 function pic_send($arr){ 

 global $ToUserName,$FromUserName; 

 $str = "<xml> 

 <ToUserName><![CDATA[".$FromUserName."]]></ToUserName> 

 <FromUserName><![CDATA[".$ToUserName."]]></FromUserName> 

 <CreateTime>".time()."</CreateTime> 

 <MsgType><![CDATA[news]]></MsgType> 

 <ArticleCount>".count($arr)."</ArticleCount> 

 <Articles>"; 

 foreach($arr as $k=>$v){ 

 if($k==0){ 

 $picurl = "http://3water.com/weixin/images/640_".$FromUserName.".png"; 

 }else{ 

 $picurl = "http://3water.com.net/weixin/images/80_".$FromUserName.".png"; 

 } 

 $str .=" 

 <item> 

 <Title><![CDATA[".$v['name']." 地址:".$v['address']." 电话:".$v['telephone']."]]></Title> 

 <Description><![CDATA[".$v['name']." 地址:".$v['address']." 电话:".$v['telephone']."]]></Description> 

 <PicUrl><![CDATA[".$picurl."]]></PicUrl> 

 <Url><![CDATA[http://api.map.baidu.com/place/detail?uid=".$v['uid']."&output=html&src=".$v['name']."&output=html]]></Url> 

 </item>";

 } 

 $str .= "</Articles></xml>"; 

 return $str; 

 } 

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
做个自己站内搜索引擎
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
php提高网站效率的技巧
Sep 29 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP中trait使用方法详细介绍
May 21 PHP
php表单处理操作
Nov 16 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 #PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 #PHP
WebQQ最新登陆协议的用法
Dec 22 #PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 #PHP
php有道翻译api调用方法实例
Dec 22 #PHP
php匹配字符中链接地址的方法
Dec 22 #PHP
php用户注册时常用的检验函数实例总结
Dec 22 #PHP
You might like
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
js实现星星海特效的示例
2020/09/28 Javascript
Python实现迭代时使用索引的方法示例
2018/06/05 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
在python里面运用多继承方法详解
2019/07/01 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
pyqt5中动画的使用详解
2020/04/01 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
方法名是否可以与构造器的名字相同
2012/06/04 面试题
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
局领导领导班子四风对照检查材料
2014/09/27 职场文书
银行委托书范本
2014/09/28 职场文书
车间主任岗位职责
2015/02/03 职场文书
Python 键盘事件详解
2021/11/11 Python
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫