1. 在服务端保存用户签约状态:
- 在服务端,维护一个数据库或其他存储系统,存储用户的签约状态信息。例如,使用数据库表存储用户ID和签约状态。
// 示例中的 Node.js Express 框架代码
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
const userSignStatus = {}; // 用于存储用户签约状态的内存数据库
app.post('/signup', (req, res) => {
const userId = req.body.userId;
// 在这里进行用户签约操作
userSignStatus[userId] = true; // 用户签约
res.json({ success: true, message: '签约成功' });
});
app.post('/cancel', (req, res) => {
const userId = req.body.userId;
// 在这里进行用户解约操作
userSignStatus[userId] = false; // 用户解约
res.json({ success: true, message: '解约成功' });
});
app.get('/status', (req, res) => {
const userId = req.query.userId;
// 查询用户签约状态
const signStatus = userSignStatus[userId] || false;
res.json({ success: true, signStatus: signStatus });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
2. 在小程序中调用服务端接口进行查询:
- 在小程序中使用 wx.request 发送用户签约状态查询的请求。
// status.js
Page({
querySignStatus: function () {
const userId = 'user123'; // 替换为实际的用户ID
// 向服务端发送签约状态查询请求
wx.request({
url: `https://your-server.com/status?userId=${userId}`,
method: 'GET',
success: function (res) {
// 处理服务端返回的签约状态查询结果
if (res.data.success) {
const signStatus = res.data.signStatus;
if (signStatus) {
wx.showToast({
title: '用户已签约',
icon: 'success',
duration: 2000,
});
} else {
wx.showToast({
title: '用户未签约',
icon: 'none',
duration: 2000,
});
}
} else {
wx.showToast({
title: '查询失败',
icon: 'none',
duration: 2000,
});
}
},
fail: function (err) {
console.error('查询签约状态请求失败', err);
},
});
},
});
在实际应用中,应该使用真实的用户ID,并确保签约状态的查询是安全可靠的。另外,对于生产环境,建议使用持久化存储(如数据库)来保存用户签约状态,而不是像示例中使用的内存数据库。
转载请注明出处:http://www.pingtaimeng.com/article/detail/745/微信小程序