首页 > 编程 > PHP > 正文

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

2020-03-22 17:11:37
字体:
来源:转载
供稿:网友
本文实例讲述了php微信公众开发之获取周边酒店信息的方法。分享给大家供大家参考。具体分析如下:关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下:
复制代码 代码如下: php
//将提交过来的信息接收
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$echostr = $_GET['echostr'];
$token = "phpstudy.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/html' target='_blank'>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://phpstudy.net/weixin/images/640_".$FromUserName.".png";
}else{
$picurl = "http://phpstudy.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教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表