小程序获取openid

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40928350/article/details/83095646

1,小程序的openid相当重要,它是用户的唯一标识id,牵扯的支付,登录,授权等!你可以理解为小程序的账号,小程序是获取不到你的微信号的,这个属于私密信息!只能获取用户的昵称,头像,openid,session_key等

下面就讲解一下我获取openid遇到的坑!

首先,获取openid,需要具备,AppID(小程序ID),AppSecret(小程序密钥) ,还有登录成功后返回给你的js_code

废话不多说,先看代码

 wx.login({
        success: res => {
          console.log(res.code)//登录成功后获取js_code
          wx.request({
            url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + app.globalData.appid + '&secret=' + app.globalData.secret + '&js_code=' + res.code + '&grant_type=authorization_code',//获取openid的url,请求微信服务器
            data: {},
            header: {
              'content-type': 'application/json'
            },
            success: function(res) {
              console.log("Openid为" + res.data.openid)
              console.log("返回秘钥:" + res.data.session_key)//返回秘钥
              app.globalData.openid = res.data.openid; //返回openid
              //app.globalData.test="hello"
              app.globalData.userInfo = e.detail.userInfo;
              //授权成功后,跳转进入小程序首页
              wx.redirectTo({
                url: '../index/index'
              })
            }
          })
        }
      });

app.globalData.appid,app.globalData.secret这是我获取app.js全局变量的值

App({
  globalData: {
    appid: 'wsfsfsfsf49c',//appid需自己提供,此处的appid我随机编写
    secret: 'ffb6sfsfsfsfsfsc',//secret需自己提供,此处的secret我随机编写
    openid: 0,
    code:0,
    userInfo: null,
    test:"你好"
  },
  )}

是不是怎么看代码都没问题啊,获取openid需要的参数我都有,但是就打印出来openid为undefind,让我很恼火,
我把请求地址直接复制到浏览器也不行,返回错误提示,提示我code被重复使用,code只能使用一次的,并且code有效期只有5分钟

找了半天也没找到原因,没办法只有问老大了,经过一系列的排查,我才发现我犯了一个低级错误

我创建的这个小程序的时候这个APPID是我随机获取的,然后我用我小程序账号里的APPID试了试,麻蛋,发现真是这的问题(所以APPID必须要是小程序账号的id)

哈哈哈,问题解决只怪自己智商低啊

展开阅读全文

没有更多推荐了,返回首页