1. 小程序端代码(JavaScript):
wx.login({
success: function(res) {
if (res.code) {
const code = res.code;
// 将 code 发送到服务器
wx.request({
url: 'https://your-server.com/code2session',
method: 'POST',
data: {
code: code
},
success: function(response) {
const openid = response.data.openid;
// 处理获取到的 openid,可以保存在本地或者进行其他操作
},
fail: function(error) {
console.error('请求服务器失败:', error);
}
});
} else {
console.error('登录失败!' + res.errMsg);
}
}
});
2. 服务器端代码(Node.js 为例):
const express = require('express');
const request = require('request');
const app = express();
const PORT = 3000;
app.use(express.json());
app.post('/code2session', (req, res) => {
const appid = 'your_appid';
const appsecret = 'your_appsecret';
const code = req.body.code;
const apiUrl = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${appsecret}&js_code=${code}&grant_type=authorization_code`;
request(apiUrl, function(error, response, body) {
if (!error && response.statusCode === 200) {
const data = JSON.parse(body);
const openid = data.openid;
// 返回 openid 到小程序端
res.json({ openid: openid });
} else {
console.error('获取 openid 失败!', error);
res.status(500).send('Internal Server Error');
}
});
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
在这个示例中,小程序端通过 wx.login 获取到用户的登录凭证 code,并将 code 发送到服务器的 /code2session 路径。服务器通过向微信的 jscode2session 接口发送请求,获取用户的 openid,并将 openid 返回给小程序端。
请注意,上述代码中使用了 express 作为服务器框架,你的实际项目中可能会使用不同的框架。确保根据你的项目情况进行相应的修改。同时,服务器需要在微信开发者平台上配置好服务器的域名和安全域名,以确保小程序可以正常访问。
转载请注明出处:http://www.zyzy.cn/article/detail/1080/微信小程序