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


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 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
php二维数组用键名分组相加实例函数
Nov 06 PHP
WordPress自定义时间显示格式
Mar 27 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
php连接oracle数据库的核心步骤
May 26 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
laravel 中如何使用ajax和vue总结
Aug 16 PHP
详解thinkphp中的volist标签
Jan 15 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 18 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教程 预定义变量
2009/10/23 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
UserData用法总结 lanyu出品
2010/07/01 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
Python深入学习之内存管理
2014/08/31 Python
跟老齐学Python之重回函数
2014/10/10 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python实现批处理文件
2020/07/28 Python
Python如何实现线程间通信
2020/07/30 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
市优秀教师事迹材料
2014/02/05 职场文书
国庆宣传标语
2014/06/30 职场文书
故宫的导游词
2015/01/31 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js