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


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 相关文章推荐
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
PHP 转义使用详解
Jul 15 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 PHP
php验证码生成器
May 24 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
JQuery验证工具类搜集整理
2013/01/16 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
javascript轮播图算法
2016/10/21 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
基于python编写的微博应用
2014/10/17 Python
python多进程操作实例
2014/11/21 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
python接口自动化测试之接口数据依赖的实现方法
2019/04/26 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
python压包的概念及实例详解
2021/02/17 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
文化与传播毕业生求职信
2014/03/09 职场文书
销售个人求职信范文
2014/04/28 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle