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


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 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
PHP实现懒加载的方法
Mar 07 PHP
初识ThinkPHP控制器
Apr 07 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
php表单处理操作
Nov 16 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 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
深入了解php4(1)--回到未来
2006/10/09 PHP
PHP如何利用P3P实现跨域
2013/08/24 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
详解Angular结合zTree异步加载节点数据
2018/01/20 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python实现简单登录验证
2016/04/13 Python
Python实现简单字典树的方法
2016/04/29 Python
高效使用Python字典的清单
2018/04/04 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
化工专业个人的求职信范文
2013/11/28 职场文书
和平主题的演讲稿
2014/01/12 职场文书
学生会部长竞聘书
2014/03/31 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
四十九个javascript小知识实用技巧
2021/11/20 Javascript