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+javascript的日历控件
Nov 19 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
解析php中反射的应用
Jun 18 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
php中的路径问题与set_include_path使用介绍
Feb 11 PHP
Win7下手动安装apache2.2、php5.4笔记
Apr 03 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
Mar 07 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
python创建临时文件夹的方法
2015/07/06 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python实现dijkstra最短路由算法
2019/01/17 Python
django中的数据库迁移的实现
2020/03/16 Python
高山背包:High Sierra
2017/11/23 全球购物
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
社区健康教育实施方案
2014/03/18 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
反对邪教标语
2014/06/30 职场文书
公民代理授权委托书
2014/09/24 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript