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);
echopic_send($json['results']);
}
functionpic_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($arras$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程序设计有所帮助。