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安全编程之加密功能
Oct 09 PHP
如何在PHP中使用Oracle数据库(5)
Oct 09 PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 PHP
php生成略缩图代码
Jul 16 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
php操作memcache缓存方法分享
Jun 03 PHP
php ajax异步读取rss文档数据
Mar 29 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 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标签的函数
2008/08/27 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
JavaScript的setter与getter方法
2017/11/29 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
python抓取网页中图片并保存到本地
2015/12/01 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
Linux如何压缩可执行文件
2013/10/21 面试题
应用心理学个人的求职信
2013/12/08 职场文书
2014年党务公开方案
2014/05/08 职场文书
土木工程求职信
2014/05/29 职场文书
情人节活动总结范文
2015/02/05 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL