关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下:
- <?php
-
-
- $signature = $_GET['signature'];
-
- $timestamp = $_GET['timestamp'];
-
- $nonce = $_GET['nonce'];
-
- $echostr = $_GET['echostr'];
-
- $token = "yanjiadong";
-
-
-
-
- $arr = array($token,$timestamp,$nonce);
-
- sort($arr);
-
-
-
- $result = sha1(join($arr));
-
-
-
- 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://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:
- </item>";
- }
-
- $str .= "</Articles></xml>";
-
- return $str;
- }
-
- ?>
|