小程序页面回调如何实现?

用户a扫描了用户b手机里的小程序页面的二维码,用户a打开了小程序页面。用户在a页面点击确认,如何把确认结果回调给用户b手机a页面?

回答引用chatgpt:
在微信小程序中,可以通过使用微信提供的开放接口,如 wx.request() 或 wx.connectSocket() 等,将用户a的确认结果发送给服务器,然后再通过服务器转发给用户b手机。具体步骤如下:

在小程序页面中定义一个确认函数,例如:

Page({
  confirm: function() {
    // 用户点击确认后触发的函数,可以在此处获取确认结果并发送给服务器
    wx.request({
      url: 'https://your-server-url.com/confirm', // 服务器地址
      data: {
        confirmResult: true // 假设确认结果为true
      },
      success: function(res) {
        // 发送成功后的回调函数
        console.log(res.data);
      },
      fail: function(res) {
        // 发送失败后的回调函数
        console.log(res.errMsg);
      }
    })
  }
})


在用户b的小程序中定义一个事件监听器,用来接收来自服务器的确认结果:


Page({
  onLoad: function() {
    // 在页面加载时定义一个事件监听器
    wx.onSocketMessage(function(res) {
      console.log(res.data); // 输出服务器发送的数据
    })
  }
})

在服务器端接收来自用户a的确认结果,并转发给用户b:


const http = require('http');
const WebSocket = require('ws');
const server = http.createServer();
const wss = new WebSocket.Server({ server });

wss.on('connection', function connection(ws) {
  console.log('Client connected');
  ws.on('message', function incoming(message) {
    // 接收到用户a发送的确认结果
    console.log('Received confirmation:', message);

    // 将确认结果转发给用户b
    ws.send(message);
  });
});

server.listen(3000, function listening() {
  console.log('Server listening on port 3000');
});

在此示例中,我们使用了 WebSocket 来实现服务器端的消息传递。当用户a在小程序页面中点击确认按钮后,小程序会向服务器发送一个包含确认结果的请求。服务器接收到请求后,会将确认结果转发给所有连接到服务器的客户端,即包括用户b。用户b在小程序页面中定义了一个事件监听器,用来接收来自服务器的消息,并在控制台中输出确认结果。

这个不是回调的问题,b产生的二维码,扫了以后,会请求到指定接口,看你是使用微信生成二维码还是使用其他工具生成二维码,主要是扫描后再请求某个接口返回结果,怎么生成的二维码就可以看一下相关文档