# firstWechatProject **Repository Path**: chenye_cafeteria/firstWechatProject ## Basic Information - **Project Name**: firstWechatProject - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-03 - **Last Updated**: 2026-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 三宝灸馆小程序 基于三宝灸馆H5页面重构的微信小程序版本,采用前后端分离架构,保留新中式禅意风格,提供完整的预约、商城、会员功能。 ## 📋 目录 - [项目简介](#项目简介) - [功能模块](#功能模块) - [技术栈](#技术栈) - [项目结构](#项目结构) - [快速开始](#快速开始) - [配置说明](#配置说明) - [API文档](#api文档) - [注意事项](#注意事项) - [许可](#许可) ## 项目简介 三宝灸馆是一个完整的养生馆小程序解决方案,包含: - 微信小程序前端 - Flask后端服务 - SQLite数据库 - 微信支付集成 - 会员管理系统 ## 功能模块 ### 前端小程序 #### 首页 ([pages/index/](file:///d:/projects/firstWechatProject/pages/index/)) - 品牌Banner展示 - 快捷入口:服务项目、调理师、会员卡、商城 - 热门服务推荐 - 调理师推荐 - 会员余额展示 #### 服务项目 ([pages/services/](file:///d:/projects/firstWechatProject/pages/services/)) - 类型筛选:全部、纯手法、艾灸、拨筋、松解、砭法、推拿 - 服务卡片展示 - 快速预约入口 #### 服务详情 ([pages/service-detail/](file:///d:/projects/firstWechatProject/pages/service-detail/)) - 服务介绍和适用人群 - 会员折扣价展示 - 推荐调理师 - 立即预约按钮 #### 调理师 ([pages/therapists/](file:///d:/projects/firstWechatProject/pages/therapists/)) - 调理师列表卡片 - 擅长项目标签 - 预约状态指示 - 直接预约功能 #### 预约流程 ([pages/booking/](file:///d:/projects/firstWechatProject/pages/booking/)) - 四步流程:选择调理师 → 选择服务 → 选择时间 → 确认预约 - 日历选择器 - 时间段选择 - 价格计算(含会员折扣) #### 预约成功 ([pages/booking-success/](file:///d:/projects/firstWechatProject/pages/booking-success/)) - 预约信息汇总 - 温馨提示 #### 商城 ([pages/shop/](file:///d:/projects/firstWechatProject/pages/shop/)) - 艾灸产品展示 - 加入购物车 #### 购物车 ([pages/cart/](file:///d:/projects/firstWechatProject/pages/cart/)) - 数量增减 - 删除商品 - 去结算 #### 会员中心 ([pages/member/](file:///d:/projects/firstWechatProject/pages/member/)) - 会员卡展示 - 充值有礼 - 会员权益说明 #### 充值 ([pages/recharge/](file:///d:/projects/firstWechatProject/pages/recharge/)) - 三档充值选择:3000(9折)、5000(8折)、10000(7折) - 充值说明 #### 我的 ([pages/mine/](file:///d:/projects/firstWechatProject/pages/mine/)) - 用户信息 - 会员卡片 - 统计数据 - 预约/充值/消费记录 #### 管理员后台 - 管理员登录 ([pages/admin-login/](file:///d:/projects/firstWechatProject/pages/admin-login/)) - 预约管理 ([pages/admin/](file:///d:/projects/firstWechatProject/pages/admin/)) - 预约详情 ([pages/admin-booking-detail/](file:///d:/projects/firstWechatProject/pages/admin-booking-detail/)) ### 后端API - **认证模块** ([routes/auth.py](file:///d:/projects/firstWechatProject/server/routes/auth.py)):微信登录、用户信息更新 - **会员模块** ([routes/member.py](file:///d:/projects/firstWechatProject/server/routes/member.py)):会员信息查询、充值 - **订单模块** ([routes/order.py](file:///d:/projects/firstWechatProject/server/routes/order.py)):订单创建、查询、支付状态更新 - **支付模块** ([routes/pay.py](file:///d:/projects/firstWechatProject/server/routes/pay.py)):微信支付创建、回调处理 - **预约模块** ([routes/booking.py](file:///d:/projects/firstWechatProject/server/routes/booking.py)):预约创建、查询、状态更新 - **消费记录** ([routes/consume.py](file:///d:/projects/firstWechatProject/server/routes/consume.py)):消费记录查询、创建 ## 技术栈 ### 前端 - **框架**:原生微信小程序 - **样式**:新中式禅意风格,主色调 #8B6914(暖棕) - **存储**:本地Storage + 后端API ### 后端 - **框架**:Flask 3.0.0 - **数据库**:SQLite + SQLAlchemy 2.0.23 - **支付**:微信支付 V3 (wechatpayv3) - **其他**:python-dotenv, requests, cryptography ## 项目结构 ``` firstWechatProject/ ├── app.js # 小程序入口 ├── app.json # 全局配置 ├── app.wxss # 全局样式 ├── project.config.json # 项目配置 ├── sitemap.json # sitemap配置 ├── README.md # 项目说明 │ ├── custom-tab-bar/ # 自定义底部导航 │ ├── index.js │ ├── index.json │ ├── index.wxml │ └── index.wxss │ ├── utils/ # 工具函数 │ ├── request.js # 网络请求封装 │ ├── util.js # 通用工具函数 │ └── md5.js # MD5签名 │ ├── images/ # 图标资源 │ ├── home.png / home-active.png │ ├── service.png / service-active.png │ ├── shop.png / shop-active.png │ └── mine.png / mine-active.png │ ├── pages/ # 页面目录 │ ├── index/ # 首页 │ ├── services/ # 服务项目 │ ├── service-detail/ # 服务详情 │ ├── therapists/ # 调理师 │ ├── booking/ # 预约流程 │ ├── booking-success/ # 预约成功 │ ├── shop/ # 商城 │ ├── cart/ # 购物车 │ ├── member/ # 会员中心 │ ├── recharge/ # 充值 │ ├── mine/ # 我的 │ ├── admin-login/ # 管理员登录 │ ├── admin/ # 管理员后台 │ └── admin-booking-detail/ # 预约详情管理 │ └── server/ # 后端服务 ├── app.py # Flask应用入口 ├── config.py # 配置文件 ├── models.py # 数据库模型 ├── requirements.txt # Python依赖 ├── .env.example # 环境变量示例 ├── README.md # 后端说明 │ ├── instance/ # 数据库文件目录 │ └── yiheTang.db │ └── routes/ # 路由模块 ├── __init__.py ├── auth.py # 认证接口 ├── member.py # 会员接口 ├── order.py # 订单接口 ├── pay.py # 支付接口 ├── booking.py # 预约接口 └── consume.py # 消费记录接口 ``` ## 快速开始 ### 1. 前端准备 #### 安装微信开发者工具 下载并安装 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) #### 导入项目 1. 打开微信开发者工具 2. 点击「导入项目」 3. 选择项目目录:`firstWechatProject` 4. AppID:输入你的小程序AppID(可使用测试号) ### 2. 后端准备 #### 安装依赖 ```bash cd server pip install -r requirements.txt ``` #### 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件,填入配置: ```env SECRET_KEY=your-secret-key-change-in-production DEBUG=True WECHAT_APPID=your-wechat-appid WECHAT_SECRET=your-wechat-secret WECHAT_MCHID=your-wechat-mchid ``` #### 启动服务 ```bash python app.py ``` 服务将在 `http://localhost:3000` 启动 ### 3. 前后端联调 修改 [app.js](file:///d:/projects/firstWechatProject/app.js#L7) 中的API地址: ```javascript globalData: { apiBaseUrl: 'http://localhost:3000', // 本地开发 // apiBaseUrl: 'https://your-domain.com', // 生产环境 // ... } ``` ## 配置说明 ### 小程序配置 #### tabBar图标 项目中已预置图标,如需替换: 1. 准备PNG格式图标,建议尺寸 81x81 像素 2. 替换 `images/` 目录下的对应文件 #### 开发模式 在 [app.js](file:///d:/projects/firstWechatProject/app.js#L37) 中配置: ```javascript devMode: true, // true=模拟支付,false=真实支付 ``` ### 后端配置 #### 环境变量 | 变量 | 说明 | 默认值 | |------|------|--------| | SECRET_KEY | Flask密钥 | your-secret-key | | DEBUG | 调试模式 | True | | DATABASE_URL | 数据库连接 | sqlite:///yiheTang.db | | WECHAT_APPID | 微信小程序AppID | - | | WECHAT_SECRET | 微信小程序AppSecret | - | | WECHAT_MCHID | 微信支付商户号 | - | | WECHAT_SERIAL_NO | 证书序列号 | - | | WECHAT_PRIVATE_KEY_PATH | 私钥路径 | certs/apiclient_key.pem | | WECHAT_APICLIENT_CERT_PATH | 证书路径 | certs/apiclient_cert.pem | ## API文档 ### 认证接口 #### 微信登录 ``` POST /api/auth/login Body: { "code": "微信登录code" } Response: { "code": 200, "data": { "openid": "...", "member": {...} } } ``` #### 更新用户信息 ``` POST /api/auth/update Body: { "openid": "...", "nickname": "...", "avatar": "..." } ``` ### 会员接口 #### 获取会员信息 ``` GET /api/member/ Response: { "code": 200, "data": { "balance": 0, "level": "普通会员", ... } } ``` #### 会员充值 ``` POST /api/member//recharge Body: { "amount": 1000, "orderId": "RC123", "benefit": "金钻会员" } ``` ### 订单接口 #### 创建订单 ``` POST /api/order/create Body: { "orderId": "...", "openid": "...", "type": "recharge", "amount": 1000, "detail": "..." } ``` #### 获取订单 ``` GET /api/order/ ``` #### 订单已支付 ``` POST /api/order//paid ``` #### 获取用户订单列表 ``` GET /api/orders/ ``` ### 预约接口 #### 创建预约 ``` POST /api/booking/create Body: { "openid": "...", "therapistName": "...", "serviceName": "...", "date": "...", "time": "...", "price": 100 } ``` #### 获取用户预约列表 ``` GET /api/booking/ ``` #### 更新预约状态 ``` POST /api/booking//update Body: { "status": "confirmed", "remark": "..." } ``` ### 支付接口 #### 创建支付 ``` POST /api/pay/create Body: { "orderId": "...", "amount": 100, "title": "...", "openid": "..." } Response: { "timeStamp": "...", "nonceStr": "...", "package": "...", "signType": "...", "paySign": "..." } ``` #### 微信支付回调 ``` POST /api/pay/notify ``` ### 消费记录接口 #### 获取消费记录 ``` GET /api/consume/ ``` #### 创建消费记录 ``` POST /api/consume/create Body: { "openid": "...", "orderId": "...", "items": [...], "totalAmount": 100 } ``` ### 健康检查 ``` GET /api/health Response: { "code": 200, "data": { "status": "running" } } ``` ## 数据结构 ### 服务项目 | 字段 | 类型 | 说明 | |------|------|------| | id | number | 服务ID | | name | string | 服务名称 | | price | number | 原价 | | duration | number | 时长(分钟) | | type | string | 类型 | ### 调理师 | 字段 | 类型 | 说明 | |------|------|------| | id | number | 调理师ID | | name | string | 姓名 | | avatar | string | 头像 | | specialties | array | 擅长项目 | | available | boolean | 是否可预约 | ### 会员折扣 | 累计余额 | 折扣 | 等级 | |---------|------|------| | < 3000 | 100% | 普通会员 | | 3000+ | 90% | 白银会员 | | 5000+ | 80% | 黄金会员 | | 10000+ | 70% | 金钻会员 | ### 数据库模型 #### Member(会员) - id, openid, nickname, avatar, phone - balance, level, discount - created_at, updated_at #### Order(订单) - id, order_id, openid, type, amount, title - status, payment_time, created_at #### Booking(预约) - id, openid, order_id, therapist_name, service_name - date, time, price, status, remark - created_at, updated_at #### RechargeRecord(充值记录) - id, openid, order_id, amount, original_amount, benefit - created_at #### ConsumeRecord(消费记录) - id, openid, order_id, items, total_amount - created_at ## 注意事项 1. **tabBar图标**:小程序要求tabBar图标必须是实际存在的图片文件 2. **域名配置**:如需调用后端API,需在小程序后台配置合法域名 3. **支付资质**:个人小程序无法使用微信支付,需使用企业资质 4. **HTTPS要求**:微信支付必须使用HTTPS协议 5. **环境变量**:生产环境请务必修改SECRET_KEY等敏感配置 ## 生产部署 ### 后端部署 使用 Gunicorn 部署: ```bash pip install gunicorn gunicorn -w 4 -b 0.0.0.0:3000 app:app ``` 使用 Nginx 反向代理: ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 启用 HTTPS(使用 Let's Encrypt): ```bash sudo certbot --nginx -d your-domain.com ``` ### 小程序发布 1. 在微信开发者工具中点击「上传」 2. 登录微信公众平台提交审核 3. 审核通过后发布上线 ## 许可 本项目仅供学习参考使用。