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 相关文章推荐
PHP开发文件系统实例讲解
Oct 09 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
如何解决CI框架的Disallowed Key Characters错误提示
Jul 05 PHP
在PHP中使用redis
Nov 04 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php解析xml方法实例详解
May 12 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
Laravel中log无法写入问题的解决
Jun 17 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
常见的5个PHP编码小陋习以及优化实例讲解
Feb 27 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
在字符串中把网址改成超级链接
2006/10/09 PHP
php缓存技术介绍
2006/11/25 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
使用PYTHON接收多播数据的代码
2012/03/01 Python
python sys模块sys.path使用方法示例
2013/12/04 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
工程承包协议书
2014/10/20 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
运动会广播稿50字
2015/08/19 职场文书
导游词之山海关
2019/12/10 职场文书