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 相关文章推荐
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
php中adodbzip类实例
Dec 08 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
PHP实现适用于文件内容操作的分页类
Jun 15 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
May 13 PHP
PHP中SESSION过期设置
Mar 09 PHP
PHP RabbitMQ消息列队
May 11 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多维数组的深度的方法
2014/01/07 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
JavaScript File分段上传
2016/03/10 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
ES6的解构赋值实例详解
2019/05/06 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
JS实现简易日历效果
2021/01/25 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python简单实现区域生长方式
2020/01/16 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
理财学专业自荐书
2014/06/28 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python