当前位置:网站首页 >  攻略

从零搭建微信公众号版极简可落地的私域积分体系全步骤

时间:2026年06月11日 16:39:26 来源:易频IT社区

一、前置准备

本指南使用Node.js + 微信云开发,无需购买服务器域名,适合0成本快速上线。

1.1 技术环境搭建

  • 下载Node.js LTS版本:https://nodejs.org/zh-cn,安装时直接点“Next”默认完成
  • 验证安装:打开CMD/PowerShell输入node -vnpm -v,均显示版本号即成功

1.2 微信公众号准备

  • 注册/登录已认证订阅号/服务号:未认证仅开放能力受限,建议优先服务号有更多消息触达机会,注册地址:https://mp.weixin.qq.com/
  • 开通微信云开发:登录微信公众平台→左侧菜单栏「开发」→「云开发」→「开通」→选择免费基础版即可

二、微信云开发配置

2.1 创建云环境与数据库

  • 进入云开发控制台→左侧「环境」→新建环境,环境ID复制备用,免费版最多建2个
  • 左侧「数据库」→新建集合,命名为「user_points」,权限设为仅创建者可读写
  • 再建「积分_logs」集合,权限设为仅创建者可读写

2.2 初始化云开发代码模板

在本地新建文件夹,命名为wx-points,打开CMD/PowerShell进入该目录,执行以下命令:

  • 初始化npm:npm init -y
  • 安装微信云开发CLI:npm install -g @cloudbase/cli
  • 登录云开发:tcb login,扫码完成登录
  • 下载本地开发模板:tcb init,按提示选择「node-starter」模板、刚创建的云环境ID

三、核心代码实现

3.1 数据库结构(user_points、积分_logs默认字段无需改,新增字段见下)

user_points核心字段(可在云开发控制台手动测试建第一条时批量开启字段权限):

  • _openid(微信云开发自动生成,唯一标识用户)
  • points(当前积分,默认0,Number类型)

积分_logs核心字段:

  • _openid(关联用户)
  • change(积分变化值,正数加,负数减,Number类型)
  • reason(积分变动原因,String类型)
  • create_time(变动时间,云开发自动生成的Date类型)

3.2 云函数开发

打开本地wx-points/functions目录,新建文件夹addPoints、reducePoints、getPoints三个云函数目录

每个云函数目录下执行npm install --save wx-server-sdk

addPoints云函数(index.js完整代码)

```javascript const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() exports.main = async (event, context) => { const { _openid, change, reason } = event try { // 先查用户是否存在 const res = await db.collection('user_points').where({ _openid }).get() if (res.data.length === 0) { // 不存在则新增 await db.collection('user_points').add({ data: { points: change } }) } else { // 存在则更新 await db.collection('user_points').where({ _openid }).update({ data: { points: db.command.inc(change) } }) } // 记录日志 await db.collection('积分_logs').add({ data: { change, reason, create_time: db.serverDate() } }) return { code: 0, msg: '积分增加成功' } } catch (e) { return { code: -1, msg: e.message } } } ```

reducePoints云函数(index.js完整代码)

```javascript const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() const _ = db.command exports.main = async (event, context) => { const { _openid, change, reason } = event try { // 先查当前积分是否足够 const res = await db.collection('user_points').where({ _openid, points: _.gte(change) }).get() if (res.data.length === 0) { return { code: 1, msg: '积分不足' } } // 更新积分 await db.collection('user_points').where({ _openid }).update({ data: { points: _.inc(-change) } }) // 记录日志 await db.collection('积分_logs').add({ data: { change: -change, reason, create_time: db.serverDate() } }) return { code: 0, msg: '积分扣减成功' } } catch (e) { return { code: -1, msg: e.message } } } ```

getPoints云函数(index.js完整代码)

```javascript const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() exports.main = async (event, context) => { const { _openid } = event try { const userRes = await db.collection('user_points').where({ _openid }).get() const logRes = await db.collection('积分_logs').where({ _openid }).orderBy('create_time', 'desc').limit(20).get() return { code: 0, msg: '查询成功', data: { points: userRes.data[0]?.points || 0, logs: logRes.data } } } catch (e) { return { code: -1, msg: e.message } } } ```

3.3 云函数部署

从零搭建微信公众号版极简可落地的私域积分体系全步骤

进入每个云函数目录,右键选择“在终端中打开”(或手动CMD进入),执行tcb functions:deploy 云函数名,按提示完成部署;三个云函数分别部署后,在云开发控制台「云函数」→「函数配置」→每个函数名→「权限设置」→勾选「允许任何来源调用」→「确定」

四、公众号前端对接

使用微信公众号「自定义菜单」链接到云开发静态托管页面,无需写复杂的前端代码,直接用云开发提供的「静态网站」模板快速生成积分查询、签到页面(签到默认+10分)

4.1 开通静态网站托管

进入云开发控制台→左侧「静态网站」→「开通」→免费基础版即可

4.2 上传静态页面

在本地新建index.html文件,内容如下:

```html 我的积分
当前积分:0

最近20条记录

```

将代码中的YOUR_ENV_ID替换为你的云环境ID,保存文件;进入云开发控制台「静态网站」→「文件管理」→「上传文件」,上传刚才的index.html,上传后点击文件右侧「预览」获取链接

4.3 公众号菜单配置

登录微信公众平台→左侧「功能」→「自定义菜单」→新建菜单「我的积分」,菜单内容选「跳转网页」,粘贴刚才的静态网站链接,点击「保存并发布」

五、测试与后续优化

5.1 测试

  • 用个人微信扫码关注公众号,点击「我的积分」,签到查看积分是否增加、记录是否生成
  • 可以自己测试其他积分规则,修改index.html中的签到按钮事件调用addPoints的参数,或新增云函数

5.2 后续优化方向

  • 增加邀请好友、浏览文章等触发条件
  • 云数据库防重复签到改成云函数判断(避免本地篡改)
  • 增加积分兑换功能

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图