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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
生成卡号php代码
Apr 09 PHP
php实现文件下载更能介绍
Nov 23 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
解析php如何将日志写进syslog
Jun 28 PHP
php GUID生成函数和类
Mar 10 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php根据生日计算年龄的方法
Jul 13 PHP
Yii中表单用法实例详解
Jan 05 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
php之可变函数的实例详解
Sep 13 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下网站防IP攻击代码,超级实用
2010/10/24 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
XMLHTTPRequest的属性和方法简介
2010/11/23 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
angular 服务随记小结
2019/05/06 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python中用于计算对数的log()方法
2015/05/15 Python
批处理与python代码混合编程的方法
2016/05/19 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
学年末自我鉴定
2014/01/21 职场文书
员工加薪申请报告
2015/05/15 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书