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


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学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php使用curl打开https网站的方法
Jun 17 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
thinkphp 验证码 的使用小结
May 07 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 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
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python进阶教程之动态类型详解
2014/08/30 Python
Unicode和Python的中文处理
2017/03/19 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
Python程序暂停的正常处理方法
2019/11/07 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
美国折扣网站:jClub
2017/08/07 全球购物
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
商务会议邀请函
2014/01/09 职场文书
年终总结会议主持词
2014/03/17 职场文书
律师授权委托书范本
2014/10/07 职场文书
表扬通报怎么写
2015/01/16 职场文书
孔繁森观后感
2015/06/10 职场文书
办公室管理规章制度
2015/08/04 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
图神经网络GNN算法
2022/05/11 Python