2025年1月15日:
注意:其中appid,secret,还有服务器网址都按自己实际的填写
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了。