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

yipeiwu_com6年前PHP代码库

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

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

复制代码 代码如下:
<?php
 //将提交过来的信息接收
$signature = $_GET['signature'];
 $timestamp = $_GET['timestamp'];
 $nonce = $_GET['nonce'];
 $echostr = $_GET['echostr'];
 $token = "jb51.net";
 //判断接入网站
 
 //进行字典排序
 $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 = "/zb_users/upload/202003/rmwaxtsx13b.html",$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 = "/zb_users/upload/202003/siwbtmg2hpu.png";
 }else{
 $picurl = "http://jb51.net.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 CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解

在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来。比如微博,SNS类应用就最长用到这个功能。而一般存储在数据库中的时间...

解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示

解决分析: 这个错误是说你的php 执行时间越过了配置文件中设置的最大执行时间30秒钟,这不是你的程序本身存在的问题,而 是系统的配置文件问题,如果你的网速快的话,可能再执行一次就不会出...

PHP return语句另类用法不止是在函数中

分享下PHP return语句的另一个作用,在bbPress的代码中看到的一个奇葩使用方法。 一直以为,return只能出现在函数中,直到看了bbPress的代码: <?...

php实现的中秋博饼游戏之绘制骰子图案功能示例

php实现的中秋博饼游戏之绘制骰子图案功能示例

本文实例讲述了php实现的中秋博饼游戏之绘制骰子图案功能。分享给大家供大家参考,具体如下: 最近公司中秋博饼(在厦门),自己没事也想玩玩,所以就想动手写了一个纯php实现的中秋博饼游戏,...

PHP的微信支付接口使用方法讲解

在开发之中经常会使用到支付的功能,现在常用的两种支付方式是支付宝和微信。相对而言,支付宝的文档较为健全,并且配置和调用方式方式比较简单,这里就不过多的描述。 首先去微信官网网站下去下载服...