zoukankan      html  css  js  c++  java
  • 微信小程序 获取OpenId

    微信小程序 官方API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/

    首先 以下代码是 页面加载请求用户 是否同意授权 同意之后 用code 访问 微信接口 拿到OpenId

    //页面加载 微信授权
    var getInfo = function (thisObj){
      var that = thisObj;
      wx.login({
        success: function (res) {
          if (res.code) {
            //获取openId
            wx.request({
              url: 'https://api.weixin.qq.com/sns/jscode2session',
              data: {
           //小程序唯一标识
                appid: '',
            //小程序的 app secret
                secret: '',
                grant_type: 'authorization_code',
                js_code: res.code
              },
              method: 'GET',
              header: { 'content-type': 'application/json'},
              success: function(openIdRes){
                  console.info("登录成功返回的openId:" + openIdRes.data.openid);
                  weChatUserInfo.openId = openIdRes.data.openid;
                  // 判断openId是否获取成功
                  if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {
            // 有一点需要注意 询问用户 是否授权 那提示 是这API发出的 wx.getUserInfo({ success:
    function (data) { // 自定义操作 // 绑定数据,渲染页面 that.setData({ }); }, fail: function (failData) { console.info("用户拒绝授权"); } }); }else { console.info("获取用户openId失败"); } }, fail: function(error) { console.info("获取用户openId失败"); console.info(error); } }) } } }); }


    以下是 手动配置 打开 微信授权

    //手动打开微信授权
    var getInfoAgain = function (thisObj){
      var that = thisObj;
      wx.openSetting({
        success: function (data) {
          //判断 用户是否同意授权
          if (data.authSetting["scope.userInfo"] == true) {
            // 同意授权
            wx.login({
              success: function (res) {
                if (res.code) {
                  console.info("登录成功返回的CODE:" + res.code);
                  //获取openId
                  wx.request({
                    url: 'https://api.weixin.qq.com/sns/jscode2session',
                    data: {
                      // 小程序唯一标示
                      appid: '',
                      // 小程序的 app secret
                      secret: '',
                      grant_type: 'authorization_code',
                      js_code: res.code
                    },
                    method: 'GET',
                    header: { 'content-type': 'application/json' },
                    success: function (openIdRes) {
                      // 获取到 openId
                      console.log(openIdRes.data.openid);
                      // 判断openId是否为空
                      if (openIdRes.data.openid != null & openIdRes.data.openid != undefined) {
                        wx.getUserInfo({
                          success: function (data) {
                            // 自定义操作
                            // 绑定数据,渲染页面
                            that.setData({
                              
                            });
                          }
                        })
                      }else {
                        // openId为空
                      }
                    }
                  })
                }
              }
            });
          }else {
               // 手动 开启 是否授权提示框后 拒绝
          }
        }
      });
    }               

    //TODO 有个地方需要注意一下 小程序开发者工具 有一个配置

    这个配置 如果打开 不验证域名 都可以访问

    但是 这只是开发者工具 可以访问 以及手机预览 可以访问

    如果放到正式版的环境 或者说 测试版的环境 那么 是不可以访问除了 设置好的域名以外 所有的域名 需要将 微信接口 (https://api.weixin.qq.com) 设置到 小程序白名单中 否则 获取不到OpenId 返回undefined

  • 相关阅读:
    Oracle数据库限定特定用户 特定IP 登录
    Elasticsearch 监控
    Elasticsearch 使用:创建、插入、查询、更新、删除
    ES 的基本用法
    elasticsearch 集群管理(集群规划、集群搭建、集群管理)
    ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决
    Greenplum 基准测试
    MySQL 计算时间差函数 TIMESTAMPDIFF、DATEDIFF
    PostgreSQL 时间函数 extract函数
    Greenplum最佳实践
  • 原文地址:https://www.cnblogs.com/yi1036943655/p/6928286.html
Copyright © 2011-2022 走看看