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

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

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

代码如下:

<?php
 //将提交过来的信息接收
$signature = $_GET['signature'];
 $timestamp = $_GET['timestamp'];
 $nonce = $_GET['nonce'];
 $echostr = $_GET['echostr'];
 $token = "jb51.net";
 //判断接入网站
 
 //进行字典排序
 $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&center=".$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&center=".$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://jb51.net/weixin/images/640_".$FromUserName.".png";
 }else{
 $picurl = "http://jb51.net.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程序设计有所帮助。

(0)

相关推荐

  • php微信公众平台开发之获取用户基本信息

    本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息,而无需模拟登录. 把微信和第三方网站结合起来运行,是许多客户经常要的方案.这里简要介绍一下获取微信用户的基本信息,并在第三方网站直接登录. 当微信公户关注一个公众号时,会产生一个独一无二的OpenID,此时我们就需要用到它去请求微信服务器获取用户的基本信息,包括头像,昵称等. 更加详细的说明请参考 微信开发文档 . 获取的步骤如下: 1 第一步:用户同意授权,获取code 2 第二步:通过c

  • PHP通过微信跳转的Code参数获取用户的openid(关键代码)

    关键代码如下所示: //获取微信登录用户信息 function getOpenID($appid,$appsecret,$code){ $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=". $appsecret."&code=".$code."&grant_type=authorization_code

  • PHP对接微信公众平台消息接口开发流程教程

    一.写好接口程序 在你的服务器上上传好一个接口程序文件,如http://www.yourdomain.com/weixin.php  内容如下: 复制代码 代码如下: <?phpdefine("TOKEN", "weixin");//自己定义的token 就是个通信的私钥$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();//$wechatObj->responseMsg();c

  • php版微信自动获取收货地址api用法示例

    本文实例讲述了php版微信自动获取收货地址api用法.分享给大家供大家参考,具体如下: 微信公众平台现在是越来越强大了,我们可以通过各种api接口来与平台对接获取对应的数据了,下面来看一个由php实现的微信自动获取收货地址api程序,具体如下. 关于接口的说明我就不介绍了,在官方可以看到下面只看处理程序. public function get_address_api() { $APPID=C('APPID'); $SCRETID=C('SCRETID'); if (!isset($_GET['

  • 基于php的微信公众平台开发入门实例

    本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单.   下面写个实例,开发微信智能聊天机器人:   1. 注册微信公众平台账号 微信公众平台:

  • 微信公众平台开发接口PHP SDK完整版

    代码如下: 更新日志: 2013-01-01 版本1.02014-03-15 增加图片.视频.语音的内容回复2014-04-09 增加菜单链接事件2014-04-10 修改文本回复的判定方法 复制代码 代码如下: <?php/*    方倍工作室    CopyRight 2014 All Rights Reserved*/ define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest();

  • php版微信自动登录并获取昵称的方法

    本文实例讲述了php版微信自动登录并获取昵称的方法.分享给大家供大家参考,具体如下: 微信自动登录并获取昵称是可以通过api接口来获取的也是通过微信开放的接口来实现了,下面我们一起来看一个例子 仅记录:微信获取昵称自动登录 经过反复几次验证,发现我这个方法有缺陷: 微信内 未关注进入网站,无法获得昵称. 关注后用我这个方法可以获得昵称. 是否是因为第一次生成openid 所以还未生成昵称?待测试. /** * 获取当前页面完整URL地址 */ function get_url() { $sys_

  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布.必须到你通过程序测试提交订单.发货通知等数据到微信的系统中,才能申请发布. 然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到二级三级目录下去,这对于使用MVC框架来说,是个小问题. 使用MVC,在开发环境,url往往是native url格式,不能保证一定是带有路径/的形式 所以,比较可靠的方式,是创建实体的子文件夹,这样的化,在系统整体url方面,需要进行一些改造. 另外,最后一步,js调用时,对于

  • eaglephp使用微信api接口开发微信框架

    适用平台:window/Linux依赖项目:EaglePHP框架 包含微信5.0 API基础接口.自定义菜单.高级接口,具体如下:1.接收用户消息.2.向用户回复消息.3.接受事件推送.4.会话界面自定义菜单.5.语音识别.6.客服接口.7.OAuth2.0网页授权.8.生成带参数二维码.9.获取用户地理位置.10.获取用户基本信息.11.获取关注者列表.12.用户分组. 复制代码 代码如下: <?php/** * 微信公众平台API */class WeixinChat{ private $t

  • php开发微信支付获取用户地址

    使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能. 微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验. 但是可能是因为牵扯到用户隐私,所以在使用过程中,需要用户自己主动选择使用该功能,并且是通过点击的操作,我们才可以获取到用户的收货地址,这一点是要注意的. 操作流程如下: 1.用户打开购物车页面,点击结算,跳转到一个微信的oauth2的页面,地址为:https://open.weixin.qq.com/connect/oa

  • php实现微信扫码自动登陆与注册功能

    本文实例讲述了php实现微信扫码自动登陆与注册功能.分享给大家供大家参考,具体如下: 微信开发已经是现在程序员必须要掌握的一项基本的技术了,其实做过微信开发的都知道微信接口非常的强大做起来也非常的简单,这里我们一起来看一个微信自动登陆注册的例子. php 微信扫码 pc端自动登陆注册 用的接口scope 是snsapi_userinfo,微信登陆一个是网页授权登陆,另一个是微信联合登陆 网页授权登陆:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b647

随机推荐