Skip to content

Latest commit

 

History

History
202 lines (142 loc) · 5.74 KB

File metadata and controls

202 lines (142 loc) · 5.74 KB

胡团蛋糕项目说明

1. 当前项目结论

这是一个基于开源/模板微信商城小程序改造的胡团蛋糕项目,不是从零开发。

当前最重要的目标不是马上做支付、闪送或完整会员系统,而是先让朋友能在手机微信里稳定测试这条链路:

打开小程序
  -> 微信登录/用户身份
  -> 浏览蛋糕商品
  -> 选择/填写收货地址
  -> 创建订单
  -> mock 支付或商家标记已支付
  -> 商家手动处理订单和配送

2. 项目目录

hutuanCake/
├── README.md                 # 项目入口说明
├── docs/
│   ├── project.md             # 当前项目说明,也就是本文档
│   ├── api-and-models.md      # 从现有前端代码梳理出的接口和模型
│   ├── bugs.md                # 当前 Bug 整理
│   └── cloudrun-deployment.md # 微信云托管部署与配置
├── frontend/                 # 微信小程序前端,微信开发者工具导入这个目录
└── backend/                  # Go 本地后端,保留方法名 API 接口

以后项目相关文档优先放在本仓库 docs/ 里,不再同时维护一份外部 Markdown 知识库版本,避免两边不一致。

3. 前端现状

前端目录:

frontend/

微信开发者工具应该导入这个目录。

当前前端统一通过 frontend/utils/api.js 调用后端,典型调用方式是:

API.login_wx(...)
API.authorize(...)
API.queryAddressV2(...)
API.addAddress(...)
API.defaultAddress(...)
API.orderCreate(...)

当前本地接口配置在:

frontend/config.js

当前配置指向:

apiBaseUrl: http://127.0.0.1:8080
subDomain: hutuanCake
merchantId: 27

这适合微信开发者工具模拟器本机调试。真机预览时,手机上的 127.0.0.1 指的是手机自己,不是电脑,所以需要改成局域网 IP 或 HTTPS 隧道地址。

4. 后端现状

后端目录:

backend/

后端定位是:先用本地 Go 服务保留方法名 API 接口,让开源小程序能跑起来,后续再逐步替换成真实业务后端。

当前已具备:

  • /healthz 健康检查;
  • /api/{methodName} 方法名路由;
  • 商品、分类、门店、购物车、订单、地址、优惠券等 mock/半真实接口;
  • MySQL 持久化入口,本地和线上统一使用 MySQL。

本地联调建议直接连接本地或线上 MySQL:

cd backend
DB_DSN='mysql://user:pass@127.0.0.1:3306/hutuan' go run ./cmd/server

后端只支持 MySQL;快速检查接口也需要连接本地或线上 MySQL。

5. 当前最优先的两个能力

5.1 用户授权/登录

当前最应该先做的是微信用户身份,不是完整会员系统。

推荐第一版链路:

小程序 wx.login()
  -> 得到临时 code
  -> 后端 login_wx 接收 code
  -> 本地开发阶段:后端生成 mock openid / uid / token
  -> 正式阶段:后端用 AppID + AppSecret 调微信 jscode2session 换 openid
  -> 前端保存 token 和 uid
  -> 后续购物车、地址、订单都用 token 归属到同一个用户

关键点:

  • wx.login() 本身不需要用户点授权弹窗;
  • 不要一开始做手机号授权、完整会员等级、余额充值;
  • 第一阶段只要能区分不同测试用户的购物车、地址、订单即可;
  • getUserProfile 只适合拿头像昵称展示,不应该作为订单身份的核心依据。

5.2 地址授权/收货地址

当前最应该先做的是:

手动地址表单
  + wx.chooseLocation() 地图选点
  + 手动填写联系人、手机号、门牌号
  + 保存到后端地址表
  + 下单时保存地址快照

关键点:

  • wx.chooseLocation() 会打开地图选点,前端拿到地址、经纬度;
  • 联系人、手机号、门牌号由用户在表单里手动填写;
  • 保存地址时必须带经纬度,供后续闪送下单使用;
  • 下单时订单里必须保存地址快照,不能只保存 address_id,否则用户之后改地址会影响历史订单。

6. 本地和真机测试结论

微信开发者工具本地测试

可以做:

  • wx.login() 流程;
  • 后端 mock token;
  • 地址列表、新增地址、默认地址;
  • 地图选点和手动地址表单;
  • 下单链路;

限制:

  • 模拟器对定位、地图选点、用户真实环境支持不如真机;
  • 如果后端跑在 WSL,模拟器访问 http://127.0.0.1:8080 通常可行,但真机不行;
  • 如果要调用微信正式 jscode2session,需要正式 AppID/AppSecret,不能把 AppSecret 写进前端或 Git。

手机真机测试

可以实现,而且用户授权和地址授权最好最终在真机验证。

真机测试有三种方式:

  1. 真机调试:开发者工具连接手机,适合开发者自己调试。
  2. 预览二维码:适合短时间给自己或朋友扫一下看效果。
  3. 体验版:适合让朋友持续测试,但需要把朋友加为体验成员。

真机测试后端地址要注意:

127.0.0.1 / localhost 只代表手机自己,不代表电脑。

所以真机测试需要二选一:

电脑局域网 IP,例如 http://192.168.x.x:8080

或:

HTTPS 隧道,例如 https://xxxx.trycloudflare.com

如果是体验版或更接近真实用户的测试,优先用 HTTPS 隧道或正式 HTTPS 域名,后续上线必须配置微信小程序合法 request 域名。

7. 暂时不优先做的事

这些不是当前第一优先级:

  • 真实微信支付;
  • 闪送 API 全自动下单;
  • 完整会员系统;
  • 积分、充值、礼品卡;
  • 多门店复杂后台;
  • 正式云数据库;
  • 上线审核材料。

当前先把用户身份和地址链路跑通,再把商品/订单链路稳定下来。