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的宝库目录--PEAR
Oct 09 PHP
图象函数中的中文显示
Oct 09 PHP
一个PHP+MSSQL分页的例子
Oct 09 PHP
隐性调用php程序的方法
Mar 09 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
php格式化电话号码的方法
Apr 24 PHP
php解析xml方法实例详解
May 12 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
Thinkphp 3.2框架使用Redis的方法详解
Oct 24 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
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
使用Python的判断语句模拟三目运算
2015/04/24 Python
浅谈python对象数据的读写权限
2016/09/12 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
联想英国官网:Lenovo英国
2019/07/17 全球购物
聘用意向书范本
2014/04/01 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫