记录一下麻烦的微信小程序获取用户openid的方法。
onLoad() {
wx.login({
success: function(res) {
if (res.code) {
wx.request({
url: 'https://xxx.xx.xx.com/api/openId',
data: {
js_code: res.code
},
method: 'POST',
header: {
'content-type': 'application/json'
},
})
}
}
})
},
下面是nodejs服务端代码示例。
在服务端使用code调用https://api.weixin.qq.com/sns/jscode2session。
这是个get请求,除了code还需要三个参数分别为appid、secret、grant_type,这里涉及到知识点:nodejs 将对象转化为query(URLSearchParams)。
得到openid可以进行其他需要openid的接口操作。
import express from "express";
import fetch from "node-fetch";
const app = new express();
app.use(express.json());
app.post("/api/openId", async (req, res) => {
const { js_code } = req.body;
const temp = {
//填上自己的小程序唯一标识
appid: "appid",
//填上自己的小程序的 app secret
secret: "secret",
grant_type: "authorization_code",
js_code,
};
const query = new URLSearchParams(Object.entries(temp)).toString();
const response = await fetch(
`https://api.weixin.qq.com/sns/jscode2session?${query}`
);
const { openid } = await response.json(); // 得到openid
...
});
如果觉得文章对你有帮助的话,欢迎点赞收藏哦,有什么错误或者意见建议也可以留言,感谢~