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


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防注入代码
Apr 07 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
如何用PHP实现插入排序?
Apr 10 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 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打造属于自己的MVC框架
2012/03/07 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
解决Python二维数组赋值问题
2019/11/28 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
Django通过json格式收集主机信息
2020/05/29 Python
python线性插值解析
2020/07/05 Python
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
2014年创卫实施方案
2014/02/18 职场文书
户外活动总结
2015/02/04 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python