关闭

获取微信用户发来的地理位置

标签: xml微信php
100人阅读 评论(0) 收藏 举报
分类:

实现功能:

  当微信用户将地理位置信息发送给公众号时,微信服务器将用户的地理位置信息封装成XML数据包,然后通过POST方法将其发送给公众号服务器,微信公众号服务器收到数据后, 将用户发来的消息中的地理位置的经纬度,标签,地图缩放大小等信息返回给用户;若接收到的不是地理位置的信息,则向用户返回”我只接收地理消息!”的文本格式消息.具体代码如下:

<?php
/*
 * 获取微信用户发来的地理位置
 */
header("Content-Type: text/html; charset=utf-8");   //设置字符编码为utf-8

$wechatObj = new wechat_php();
$wechatObj->GetLocationMsg();

class wechat_php {
    public function GetLocationMsg() {
        //获取微信服务器POST请求中的数据
        $postStr = file_get_contents("php://input");

        if (!empty($postStr)) { //如果数据不为空
            $postObj = simplexml_load_string($postStr, "SimpleXMLElement", LIBXML_NOCDATA); //将XML数据装载到对象中
            $fromUsername = $postObj->FromUserName; //微信用户名
            $toUsername = $postObj->ToUserName; //开发者微信号
            $msgType = $postObj->MsgType;   //消息的类型
            $location_X = trim($postObj->Location_X); //地理位置维度
            $location_Y = trim($postObj->Location_Y);  //地理位置的经度
            $scale = trim($postObj->Scale); //地图缩放大小
            $label = trim($postObj->Label); //地图缩放大小
            $msgId = trim($postObj->MsgId); //消息id
            $time = time(); //回复消息的时间

            //回复消息的XML格式
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if (strtolower($msgType) != "location") {
                $msgType = "text";  //回复消息的类型
                $contentStr = "我只接受地理位置消息!";  //回复的内容
            }
            else {
                $msgType = "text";  //回复消息的类型
                $contentStr = "Location_X:".$location_X."\n";   //位置的纬度
                $contentStr = $contentStr."Location_Y:".$location_Y."\n";   //位置的经度
                $contentStr = $contentStr."Scale:".$scale."\n"; //地图的缩放大小
                $contentStr = $contentStr."Label:".$label;  //地图的缩放大小
            }
            $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            echo $resultStr;
        }
        else {
            echo "";
            exit;
        }
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

微信jsapi获取用户地理位置接口开发(第八课)

本章节给大家介绍通过微信jsapi获取用户的地理位置,微信官方文档关于地理位置给了两种接口,一种是通过微信内置地图查看用户的地理位置,第二种是直接获取当前用户的地理位置坐标信息。 使用微信内置地...
  • dragonpeng2008
  • dragonpeng2008
  • 2016-11-11 16:25
  • 6301

微信公众平台开发网页获取用户地理位置

在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息。 本文分为以下二个部分: 生成JS-SDK权限验证签名使用地理位置接口获取坐标   一、微信JS-S...
  • fanhu6816
  • fanhu6816
  • 2016-08-04 21:40
  • 8698

微信公众平台开发—— 网页获取用户地理位置

微信主动获取用户地理位置,只能用这种办法,要开启地理位置获取高级接口。
  • Return_True_hang
  • Return_True_hang
  • 2016-04-26 22:56
  • 2198

微信jsapi获取用户地理位置接口开发(7)

文章来源http://www.vxzsk.com/115.html 章节给大家介绍通过微信jsapi获取用户的地理位置,微信官方文档关于地理位置给了两种接口,一种是通过微信内置地图查...
  • linfanhehe
  • linfanhehe
  • 2017-02-14 17:35
  • 320

微信测试号开发之七 获取用户地理位置

微信获取用户地理位置
  • qq_37936542
  • qq_37936542
  • 2017-12-06 17:41
  • 1082

利用微信接口获取用户的地理位置

需求:获取已关注公众号的用户的GPS位置,存储到数据库中,用数据库中的这些数据作为统计分析,查看人群主要集中在哪里; 调用微信接口获取用户的经纬度: wx.getLocation({ ...
  • DXB601
  • DXB601
  • 2017-08-09 17:05
  • 427

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

微信获取用户地理位置信息的原理与步骤 在微信公众服务号开发需求中经常有获取用户位置信息的功能,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动。 下面通过给大家介绍微信...
  • qq_37878579
  • qq_37878579
  • 2017-11-23 19:55
  • 1011

微信开发获取地理位置实例(java)

  • 2016-01-12 11:18
  • 30KB
  • 下载

微信小程序------获取地理位置

由于小程序只提供了我们一个获取地理位置、速度的api,并没有获取的相关地位位置的信息等等,因此我们还需要借助一些第三方的api来实现 我们可以使用百度地图...
  • qq_35357001
  • qq_35357001
  • 2017-06-12 18:09
  • 4490

微信公众号开发之获取地理位置接口

微信公众号开发之获取地理位置接口
  • qq_17635843
  • qq_17635843
  • 2017-07-27 12:00
  • 631
    个人资料
    • 访问:824次
    • 积分:112
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档