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 相关文章推荐
PHP 在线翻译函数代码
May 07 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
PHP在线生成二维码代码(google api)
Jun 03 PHP
destoon常用的安全设置概述
Jun 21 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
php中str_pad()函数用法分析
Mar 28 PHP
Yii2选项卡的简单使用
May 26 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
PHP漏洞全解(详细介绍)
2012/11/13 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
javascript event 事件解析
2011/01/31 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
python读取Android permission文件
2013/11/01 Python
Python实现学校管理系统
2018/01/11 Python
python爬取微信公众号文章的方法
2019/02/26 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python3 配置logging日志类的操作
2020/04/08 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
荷兰手表网站:Watch2Day
2018/07/02 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
什么是规则表达式
2012/05/03 面试题
医学生个人求职信范文
2013/09/24 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
金融管理应届生求职信
2014/02/20 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
个人贷款担保书
2014/04/01 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
DE1103使用报告
2022/04/05 无线电