zoukankan      html  css  js  c++  java
  • 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息

    在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于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服务器接口
    微信服务器将会把用户与微信之间的交互事件消息,通过此接口推送给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"].
    

  • 相关阅读:
    Flink延时监控
    FLink全链路时延—测量方式
    Linux搭建SFTP服务器
    Red Hat:USING AMQ STREAMS WITH MIRRORMAKER 2.0
    idea 搭建运行kafka 源码
    Kafka Connect Concepts
    Java IPv6相关属性preferIPv4Stack、preferIPv6Addresses介绍
    如何确定Flink反压的根源?How to identify the source of backpressure?
    如何成为 Apache 项目的 Committer
    Apache Kafka KIP 介绍
  • 原文地址:https://www.cnblogs.com/philzhou/p/4957788.html
Copyright © 2011-2022 走看看