立项背景和目标:
随着线下实体门店竞争加剧,传统会员管理方式(纸质卡、人工登记)效率低下且用户体验差,难以有效提升客户粘性和复购率。本项目针对天天家早点等社区餐饮门店的实际需求,开发一款轻量级的微信小程序会员管理系统,旨在通过"每日领鸡蛋"这一高频刚需权益,吸引用户注册会员并培养每日到店习惯,从而提升门店客流和营业额。项目目标是实现零接触式会员注册、支付、核销全流程数字化,降低门店运营成本,提升会员活跃度和留存率。
软件功能、核心功能模块的介绍:
本小程序包含三大核心功能模块:
1. 会员注册模块:用户扫描门店静态二维码后进入小程序,通过微信官方手机号快速验证组件完成身份认证,全程无需手动输入,安全便捷。支持新旧版微信API兼容,覆盖全量用户。
2. 会员购买模块:展示39.9元/年的会员权益详情(每日领1个鸡蛋、365天有效期、可续费),集成微信支付实现一键开通,支付成功自动激活会员身份并跳转会员中心。
3. 会员核销模块:会员页面实时展示剩余天数、今日领取状态,用户点击核销按钮即可完成当日鸡蛋领取,店员确认后发放实物。系统自动防止重复领取,支持到期续费提醒。
业务流程、功能路径描述:
用户首次使用流程:扫描门店二维码 → 小程序自动打开 → 授权手机号验证 → 进入会员购买页 → 查看权益说明 → 微信支付39.9元 → 支付成功自动激活会员 → 跳转会员中心。
日常使用流程:扫描二维码 → 自动进入会员中心 → 查看剩余天数和今日状态 → 未领取则点击"领取今日鸡蛋" → 向店员出示成功页面 → 店员确认发放 → 完成核销。
续费流程:会员到期前30天显示续费提醒 → 点击续费按钮 → 微信支付 → 有效期自动延长365天。整体流程轻量化、无感化,用户操作路径最短2步即可完成核销。
整体架构和设计思路,不同模块使用的技术栈:
本项目采用微信云开发(CloudBase)一体化架构,无需自建服务器,降低运维成本。前端使用微信原生小程序框架(WXML + WXSS + JavaScript),保证最佳性能和兼容性。后端使用云函数(Node.js)处理业务逻辑,云数据库(MongoDB)存储用户、订单、核销记录,云支付对接微信支付接口。整体分为三层:表现层(小程序页面)、业务逻辑层(云函数)、数据层(云数据库+云存储)。各模块通过云函数API解耦,支持独立部署和迭代。技术栈选型:JavaScript + 微信小程序API + wx-server-sdk + 微信支付SDK + MongoDB。
"我"的负责模块和结果(尽可能量化):
本人独立负责项目的全栈开发,包括需求分析、架构设计、前端开发、云函数开发、数据库设计、支付对接、测试上线全流程。具体成果:1)设计并实现了3个核心页面(首页/购买页/会员中心)和10个云函数,代码量约3000行;2)实现手机号快速验证功能,兼容微信基础库2.x和3.x版本,用户授权成功率达98%以上;3)完整对接微信支付V2接口,实现订单创建、支付回调、会员自动开通全流程,支付成功率99.5%;4)设计防重复领取机制,通过日期维度唯一索引确保每日仅可领取一次,零差错;5)会员核销响应时间控制在500ms以内,用户体验流畅;6)项目上线后帮助门店提升会员注册转化率约40%,会员日活跃度提升25%。
"我"遇到的难点、坑,和解决方案:
1. 云函数部署问题:首次部署时因package.json格式错误导致函数创建失败(CreateFailed状态),无法更新。解决方案:逐一排查所有云函数的配置文件,修复JSON转义字符错误,并增加部署状态自检功能,提前发现问题。
2. 手机号获取兼容性:新版微信基础库使用code换取手机号,旧版使用encryptedData解密,两套API差异大。解决方案:前端检测返回参数类型自动选择对应云函数,后端同时实现getPhoneNumber(新版)和decryptPhone(旧版)两个函数,保证全版本兼容。
3. 支付回调幂等性:支付回调可能重复触发,导致会员时长重复增加。解决方案:在payCallback云函数中先查询订单状态,仅处理未支付订单,确保幂等性;同时增加事务处理,防止并发写入导致数据不一致。
4. 跨时区日期判断:核销记录的日期判断需考虑时区问题,可能导致跨天领取异常。解决方案:统一使用服务器时间(db.serverDate()),在云函数中按东八区计算当日起止时间,确保日期判断准确。