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

并且附加上代码:
<?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;
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://api.map.baidu.com/place/detail?uid=" . $v['uid'] . "&output=html&src=" . $v['name'] . "&output=html]]></Url>
</item>";
}
$str.= "</Articles></xml>";
return $str;
}
?>教程地址:http://www.phprm.com/develop/59965.html
欢迎转载!但请带上文章地址^^