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


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 相关文章推荐
WHOIS类的修改版
Oct 09 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
隐藏你的.php文件的实现方法
Mar 19 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
将二维数组转为一维数组的2种方法
May 26 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP使用array_fill定义多维数组的方法
Mar 18 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
PHP7数组的底层实现示例
Aug 25 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php自定义apk安装包实例
2014/10/20 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
IE、FF浏览器下修改标签透明度
2014/01/28 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
vue实现修改图片后实时更新
2019/11/14 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
python实现数据写入excel表格
2018/03/25 Python
Python实现的tcp端口检测操作示例
2018/07/24 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
java中的控制结构(if,循环)详解
2019/06/26 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Python输出指定字符串的方法
2020/02/06 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
小学数学继续教育研修日志
2015/11/13 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS
Redis+AOP+自定义注解实现限流
2022/06/28 Redis