A-A+

微信公众开发之获取周边酒店信息

2014年04月07日 PHP 暂无评论 阅读 1,934 views 次

关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表!

效果图:

严佳冬

并且附加上代码:


<?php
 //将提交过来的信息接收

$signature = $_GET['signature'];

 $timestamp = $_GET['timestamp'];

 $nonce = $_GET['nonce'];

 $echostr = $_GET['echostr'];

 $token = "yanjiadong";

 //判断接入网站

 //进行字典排序
 $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;

&nbsp;
 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&center=".$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&center=".$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://yanjiadong.net/weixin/images/640_".$FromUserName.".png";
 }else{
 $picurl = "http://yanjiadong.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;
 }

?>

给我留言

Copyright © 严佳冬 保留所有权利.   Theme  Ality 百度地图 苏ICP备19045515号-2

用户登录

分享到: