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 - Html Transfer Code
Oct 09 PHP
php生成随机密码的几种方法
Jan 17 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php限制文件下载速度的代码
Oct 20 PHP
PHP工程师VIM配置分享
Dec 15 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
微信支付开发告警通知实例
Jul 12 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 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原理之异常机制
2010/08/21 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
php实现socket推送技术的示例
2017/12/20 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[02:27]刀塔重生降临
2015/10/14 DOTA
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python如何爬取个性签名
2018/06/19 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python实现字符串和数字拼接
2020/03/02 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
大学优秀班主任事迹材料
2014/05/02 职场文书
作风建设整改方案
2014/10/27 职场文书
挂靠协议书
2015/01/27 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python