当前位置: 首页 > 工具软件 > node-openid > 使用案例 >

微信小程序 获取用户openid

唐弘厚
2023-12-01

前言

记录一下麻烦的微信小程序获取用户openid的方法。

示例

  1. 在小程序代码中使用wx.login获取code传递到后端接口调用。
  2. 记得小程序中要调用第三方接口需要设置白名单。
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服务端代码示例。

  1. 在服务端使用code调用https://api.weixin.qq.com/sns/jscode2session。

  2. 这是个get请求,除了code还需要三个参数分别为appid、secret、grant_type,这里涉及到知识点:nodejs 将对象转化为query(URLSearchParams)

  3. 得到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
    ...
});

尾言

如果觉得文章对你有帮助的话,欢迎点赞收藏哦,有什么错误或者意见建议也可以留言,感谢~

 类似资料: