微信获取用户地理位置信息的原理与步骤


Posted in PHP onNovember 12, 2015

在微信公众服务号开发需求中经常有获取用户位置信息的功能,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动。

下面通过给大家介绍微信服务号获取用户位置信息的原理与步骤。

原理

1. 位置信息获取流程

微信获取用户地理位置信息的原理与步骤

2. 位置信息报文

<xml><ToUserName><![CDATA[gh_public_member_account]]></ToUserName>
<FromUserName><![CDATA[oNEGGwGfl8f5xMEqVHToL63LDL40]]></FromUserName>
<CreateTime>1444035882</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[LOCATION]]></Event>
<Latitude>28.701618</Latitude>
<Longitude>115.818817</Longitude>
<Precision>30.000000</Precision>
</xml>

参数说明:

参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 消息类型,event
Event 事件类型,LOCATION
Latitude 地理位置纬度
Longitude 地理位置经度
Precision 地理位置精度

获取位置信息步骤

1. 申请服务号认证

只有通过认证的服务号,才能够获取访问微信高级服务的权限。

2. 开启用户位置信息获取功能

开发者中心 -> 获取用户地理位置

微信获取用户地理位置信息的原理与步骤

3. weiPHP地理位置信息消息处理。

1. 配置微信服务号开发接口

微信获取用户地理位置信息的原理与步骤

微信服务器将会把用户与微信之间的交互事件消息,通过此接口推送给SP服务器。

2. 在WeixinController的IndexAction中处理location消息。

将xml消息转化为php数组,然后取出经纬度信息,以备使用。

$content = file_get_contents ( 'php://input' );
$data = new \SimpleXMLElement ( $content );
foreach ( $data as $key => $value ) {
 $this->data [$key] = strval ( $value );
}
// to use data["longitude"]; data["latitude"].

以上通过图文的方式给大家展示了微信获取用户地理位置信息的原理与步骤,希望大家喜欢。

PHP 相关文章推荐
随时给自己贴的图片加文字的php代码
Mar 08 PHP
关于页面优化和伪静态
Oct 11 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
Yii框架form表单用法实例
Dec 04 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
PHP实现过滤掉非汉字字符只保留中文字符
Jun 04 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
Jun 10 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
php验证手机号码
Nov 11 #PHP
Thinkphp无限级分类代码
Nov 11 #PHP
php验证码生成代码
Nov 11 #PHP
分享10段PHP常用代码
Nov 11 #PHP
php+mysql实现无限级分类
Nov 11 #PHP
2款PHP无限级分类实例代码
Nov 11 #PHP
PHP中set error handler函数用法小结
Nov 11 #PHP
You might like
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
javascript Keycode对照表
2009/10/24 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
Python 搭建Web站点之Web服务器网关接口
2016/11/06 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
英国在线泳装店:Simply Swim
2019/05/05 全球购物
PHP面试题大全
2015/10/16 面试题
优秀应届生推荐信
2013/11/09 职场文书
安全大检查实施方案
2014/02/22 职场文书
培训协议书范本
2014/04/22 职场文书
机关搬迁方案
2014/05/18 职场文书
演讲稿开场白台词
2014/08/25 职场文书
赔偿协议书范本
2014/09/12 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
详解nginx location指令
2022/01/18 Servers
处理canvas绘制图片模糊问题
2022/05/11 Javascript