zoukankan      html  css  js  c++  java
  • 微信公众号获取用户定位信息

    描述:

    用户扫描公众号二维码,公众号获取用户的定位信息

    此功能需要使用微信JS-SDK来进行功能的实现,此处附上官网文档地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

    实现流程:(官方文档说明)

    流程 详解:

    页面js代码

    1.首先在你要获取定位的html中引入js文件

    <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

    2.config接口注入权限参数

    var appIdd= '{$signPackage["appId"]}';
      var timestampd='{$signPackage["timestamp"]}';
      var nonceStrd='{$signPackage["nonceStr"]}';
      var signatured='{$signPackage["signature"]}';
      var mid = "{$mid}";
      wx.config({
        debug: true,
        appId:appIdd,
        timestamp:timestampd,
        nonceStr:nonceStrd ,
        signature:signatured,
        jsApiList: [
        // 所有要调用的 API 都要加到这个列表中
        'getLocation',
      ]
      });

    3.通过ready接口处理成功/失败验证

    wx.ready(function () {
        wx.checkJsApi({
          jsApiList: [
            'checkJsApi',
            'openLocation',
            'getLocation'
          ],
          success: function (res) {
            if (res.checkResult.getLocation == false) {
              alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
              return;
            }
          }
        });
        wx.error(function(res){
          alert("接口调取失败")
        });

    4.获取地理位置信息

    wx.getLocation({
          success: function (res) {
            $.ajax({
              url:'/response/order/getMachineLocation',
              type: 'POST',
              data:{
                result:res,
                mid:mid
              }
            });
            // alert(JSON.stringify(res));
          },
          cancel: function (res) {
            alert('用户拒绝授权获取地理位置');
          }
        });

    PHP代码

    说明:获取签名包数据是利用的微信开发者包集成环境来实现的

    1.导入开发者工具包,获取配置文件信息,主要是获取的appid

         import('include',EXTEND_PATH.'WeChatDeveloper/');
            $config = Config::get('wxconfig');
         //        $domain_name = Config::get('domain_name');
            $domain_name=request()->url();
            $JsApiSign=new WeChatScript($config);
            $data=$JsApiSign->getJsSign($domain_name);
        注意 URL 一定要动态获取

    2.assign数据

    $signPackage['appId']=$data['appId'];
            $signPackage['timestamp']=$data['timestamp'];
            $signPackage['nonceStr']=$data['nonceStr'];
            $signPackage['signature']=$data['signature'];
            
            $this->assign('signPackage',$signPackage);

    效果图:

  • 相关阅读:
    oracel 备份导出报错 EXP-00091: Exporting questionable statistics
    将多张图片快速制作成一个PDF文件
    自连接表:M可能无下级,可能有下级
    STL迭代器失效总结
    DNS劫持和DNS污染的区别
    snprintf函数用法(转)
    sql查询面试题
    linux获取主机信息
    linux网络通信中的地址形式转换
    printf函数编程小技巧
  • 原文地址:https://www.cnblogs.com/lingxiukeji-wyj/p/14240248.html
Copyright © 2011-2022 走看看