2025年1月15日:
1、现在云服务器上安装nodejs,然后写个get接口:
const express = require('express');
const app = express();
app.get('/getOpenid',(req,res)=>{
res.send("success");
})
app.listen(3000,()=>{
console.log('server is run!!');
})
2、这时在浏览器访问服务器的getOpenid接口,就会收到success
3、小程序里面获取一下(app.js):
App({
onLaunch(){
console.log('in onLaunch');
wx.request({
url: 'http://223.4.251.25:3000/getOpenid',
success(res){
console.log('成功',res.data);
},
fail(err){
console.log('失败:',err.errMsg);
}
})
}
})
4、这时候提示出错:
5、打开微信小程序开发工具,设置一下:
6、这个时候再编译一下,就可以得到正确的回复啦:
7、到这里基本框架已经搭好了,接下来我们就根据微信小程序的文档上的流程来获取openid
8、首先先login获取code,然后将code和其他的一些参数都发送到后台:
注意:其中appid,secret,还有服务器网址都按自己实际的填写
// app.js
App({
onLaunch() {
console.log('in onLaunch');
wx.login({
success: (res) => {
console.log('成功登录:', res.code);
var code = res.code;
wx.request({
url: 'http://223.4.251.25:3000/getOpenid',
data: {
appid: appid,
secret: appsecret,
js_code: code,
grant_type: 'authorization_code'
},
success(res) {
console.log('成功', res.data.openid);
},
fail(err) {
console.log('失败:', err.errMsg);
}
})
},
fail(err) {
console.log('失败:', err.errMsg);
}
})
}
})
9、然后我们就去服务器端(后台)完善我们的nodejs代码:
注意:我这里用的axios组件,所以要先安装一下
const express = require('express');
const axios = require('axios');
const app = express();
app.get('/getOpenid',(req,res)=>{
const appid = req.query.appid;
const appsecret = req.query.secret;
const code = req.query.js_code;
console.log('appid:',appid,'appsecret:',appsecret,'code:',code);
const url = 'https://api.weixin.qq.com/sns/jscode2session?appid='+appid+'&secret='+appsecret+'&js_code='+code+'&grant_type=authorization_code';
axios.get(url)
.then(respinse=>{
res.send(respinse.data);
})
.catch(err=>{
console.error(' 请求发生错误:',err);
})
})
app.listen(3000,()=>{
console.log('server is run!!');
})
10、这时,我们回到小程序端,重新编译一下代码,就可以在日志里看见openid了。