← 返回锻造场
已交付 Next.js物联网支付WhatsApp
Lavvo — 智能储物柜球鞋洗护.
依托健身房与俱乐部内无人智能储物柜运营的高端球鞋洗护服务。用户通过 App 投放,运营团队按地理集群取件,48 小时内送回同一柜门。
- 客户
- Lavvo
- 周期
- 2026
- 角色
- 架构师兼主力开发
Domain models
27
Application code
~18k LOC
User roles
4
Turnaround
48h
lavvo.app
lavvo.app
lavvo.app
lavvo.app
lavvo.app
lavvo.app
lavvo.app
lavvo.app
lavvo.app
问题
球鞋洗护要规模化,取件与送回就不能依赖现场有人。方案是在合作场地部署无人储物柜——这把一门服务生意变成了分布式硬件问题:柜门必须在正确的时刻为正确的人打开,取件路线必须知道每扇门后装了什么,合作方必须信任分成结算。
之上还压着巴西的税务义务:每一次洗护都是一张服务发票,电子服务发票(NFS-e)并非可选项。
解决方案
一套系统覆盖运营的四个侧面,各有独立界面与权限:客户端 App(投放、跟踪、取回)、运营队列(按集群取件与改期)、合作方面板(流量与分成),以及管理后台(储物柜、柜门、订单、优惠券、广告、发票)。
- 投放流程有引导——关门前 App 会带着用户从四个角度拍照,把状态争议消灭在发生之前。
- 支付通过 Asaas 走 Pix,并保留一条模拟支付路径,让整个流程无需接触真实网关即可演示。
- 通知通过 WhatsApp Cloud API 按排程发出,因为客户本来就在那里。
系统架构
单一 Next.js 应用,基于 Server Actions 与 RSC——没有需要同步的独立 API 服务——Prisma 之上是 PostgreSQL,四种角色之间有严格的 RBAC 边界。
- 储物柜硬件。厂商 API 要求从固定 IP 以明文 HTTP 发送签名请求,因此置于专用 HTTPS 代理之后。请求签名有单元测试覆盖,柜门事件经由 webhook 回传。
- NFS-e Nacional。完整实现而非第三方封装:DPS XML 生成、A1 企业证书以 AES-256-GCM 静态加密保存、XML-DSig 签名。
- 定时任务。Cron 路由驱动通知节奏,并在留存窗口关闭时清除客户照片。
成果
整个周期无人值守:客户从不需要见到员工,合作场地除了放置储物柜之外什么都不用做。发票开具无需人工介入,演示种子数据可在本地复现完整运营——正因如此,这篇案例没有暴露任何一条真实客户记录。
完整技术栈
Next.js 16 (App Router)React 19TypeScriptPrisma 7PostgreSQL 17Auth.js v5Tailwind v4LeafletAsaas (Pix)WhatsApp Cloud APIVercel BlobVitest