WXML文件
<button bindtap='getOpenIdTap'>获取用户唯一标识openid</button>
openid:{{openid}}session_key:{{session_key}}
JS文件
const APP_ID ='';//输入小程序appid
const APP_SECRET ='';//输入小程序app_secret
var OPEN_ID=''//储存获取到openid
var SESSION_KEY=''//储存获取到session_key
Page({
getOpenIdTap:function(){
var that=this;
wx.login({
success:function(res){
wx.request({
//获取openid接口
url: 'https://api.weixin.qq.com/sns/jscode2session',
data:{
appid:APP_ID,
secret:APP_SECRET,
js_code:res.code,
grant_type:'authorization_code'
},
method:'GET',
success:function(res){
console.log(res.data)
OPEN_ID = res.data.openid;//获取到的openid
SESSION_KEY = res.data.session_key;//获取到session_key
console.log(OPEN_ID.length)
console.log(SESSION_KEY.length)
that.setData({
openid: res.data.openid.substr(0, 10) + '********' + res.data.openid.substr(res.data.openid.length - 8, res.data.openid.length),
session_key: res.data.session_key.substr(0, 8) + '********' + res.data.session_key.substr(res.data.session_key.length - 6, res.data.session_key.length)
})
}
})
}
})
}
})
一开始可能会遇到
{"errcode":40125,"errmsg":"invalid appsecret, view more at http:\/\/t.cn\/LOEdzVq, hints: [ req_id: kL8J90219sg58 ]"}
解决方法
这个问题与小程序的secret有关这样就要登录用的开发者平台,将AppSecret重置 ps(这里面的AppID后面重新导入项目时要用到)
这样下来本以为会好了结果并没有出现了40029的错误 参考博客https://blog.csdn.net/u011415782/article/details/80546529
{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: m3yw8a0472th20 ]"}
解决方法
在网上搜了下,有两种说法:
1、code被使用了两次;
2、appid与secret不一致
看了一下自己的项目,这两个错误都不是,后来在另一篇博文里看到只需要重新创建项目就可以了,试了一下,还真是。
这里我先把以前的项目删除重新导入,然后在每次导入的都会有一个AppID,以前我一直在用测试号,
现在重新导入修改Appid为后台微信公众号提供的AppID然后就运行成功了