在微信小程序中,通过 wx.login 获取用户登录凭证 code 后,需要将这个 code 发送到服务器,服务器再通过 code2session 接口获取用户的唯一标识 openid。以下是一个简单的示例:

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/微信小程序