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


Posted in PHP onDecember 22, 2014

本文实例讲述了php微信公众开发之获取周边酒店信息的方法。分享给大家供大家参考。具体分析如下:

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

<?php 

 //将提交过来的信息接收 

$signature = $_GET['signature']; 

 $timestamp = $_GET['timestamp']; 

 $nonce = $_GET['nonce']; 

 $echostr = $_GET['echostr']; 

 $token = "3water.com"; 

 //判断接入网站 

 

 //进行字典排序 

 $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://3water.com/weixin/images/640_".$FromUserName.".png"; 

 }else{ 

 $picurl = "http://3water.com.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 相关文章推荐
Win9x/ME下Apache+PHP安装配置
Oct 09 PHP
PHP 增加了对 .ZIP 文件的读取功能
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
Linux下实现PHP多进程的方法分享
Aug 16 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP count_chars()函数讲解
Feb 14 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 #PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 #PHP
WebQQ最新登陆协议的用法
Dec 22 #PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 #PHP
php有道翻译api调用方法实例
Dec 22 #PHP
php匹配字符中链接地址的方法
Dec 22 #PHP
php用户注册时常用的检验函数实例总结
Dec 22 #PHP
You might like
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
thinkPHP中session()方法用法详解
2016/12/08 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
js获取checkbox值的方法
2015/01/28 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
轮播的简单实现方法
2016/07/28 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
理解python中生成器用法
2017/12/20 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
小学生获奖感言范文
2014/02/02 职场文书
平安工地建设方案
2014/05/06 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL