php教程

超轻量级php框架startmvc

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

更新时间:2020-03-01 18:41:39 作者:startmvc
本文实例讲述了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 = "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://jb51.net/weixin/images/640_".$FromUserName.".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 微信 公众 开发 获取 周边 酒店 信息 方法