微信小程序获取openid

2025年1月15日:

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了。

相关推荐
黑客老李6 小时前
web渗透实战 | js.map文件泄露导致的通杀漏洞
安全·web安全·小程序·黑客入门·渗透测试实战
游戏开发爱好者816 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
2501_9151063218 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview
2501_9151063218 小时前
使用 Sniffmaster TCP 抓包和 Wireshark 网络分析
网络协议·tcp/ip·ios·小程序·uni-app·wireshark·iphone
宠友信息20 小时前
2025社交+IM及时通讯社区APP仿小红书小程序
java·spring boot·小程序·uni-app·web app
“负拾捌”20 小时前
python + uniapp 结合腾讯云实现实时语音识别功能(WebSocket)
python·websocket·微信小程序·uni-app·大模型·腾讯云·语音识别
换日线°2 天前
NFC标签打开微信小程序
前端·微信小程序
光影少年2 天前
AIGC + Taro / 小程序
小程序·aigc·taro
2501_915918412 天前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview
2501_916007472 天前
没有 Mac 用户如何上架 App Store,IPA生成、证书与描述文件管理、跨平台上传
android·macos·ios·小程序·uni-app·iphone·webview