MiniPay AI

在线演示环境 · 可自由体验

MiniPay AI

数字支付 / 钱包 / 外卖一体化演示平台。统一身份认证、带复式账本的钱包、支付渠道编排与对账、外卖下单到配送的完整链路,跑在同一套 K3s 私有集群上,另外带一个只能调用白名单工具的 AI 助手。

OAuth2 + PKCE 复式账本 K3s 私有部署 Spring Boot 3 消费者 H5

模块入口

6 个运营端 / 商户端 / 管理端 / 消费者 H5 / 外卖 H5 / 外卖后台

认证方式

OAuth2 + PKCE图形验证码,手机号哈希存储

账务模型

复式记账金额以人民币分的整数存储

部署形态

单套 K3s 集群Cloudflare 边缘接入与回源

01核心能力

六个能真的点开、跑起来的模块

下面每一项都在演示环境里真实运行,登录对应控制台就能看到数据流转,不是示意图。

01

身份与认证

统一登录走 OAuth2 授权码 + PKCE,登录前有图形验证码,手机号以哈希形式存储。签发的令牌会校验签名、签发方、受众、过期时间与授权范围,校验不过就直接拒绝。

OAuth2PKCE图形验证码手机号哈希

02

钱包与复式账本

余额和账本由钱包服务独占写入,借贷分录在同一个本地事务里一起提交,不会出现余额动了、分录没落的情况。金额统一用人民币分的整数存储,写错了只能冲正,不能改数。

复式记账同事务一致整数分冲正纠错

03

支付编排 渠道 · 回调 · 对账

把支付渠道、异步回调和日终对账收敛到一处:订单由状态机驱动,回调按幂等键去重,重复通知不会重复入账,超时和异常交给补偿任务收敛到终态。

渠道编排异步回调幂等去重自动对账

04

外卖业务 下单 · 支付 · 配送

覆盖门店与菜品、下单、支付到配送的完整链路。外卖和支付是两个独立服务,各自持有自己的数据,通过事件与状态机对齐,外卖不会去直接改支付状态。

门店菜品下单钱包支付配送调度

05

AI 智能助手 白名单工具调用

助手只能调用事先登记好的工具接口,不直连业务数据库,也拿不到登录密码、支付密码、验证码或完整令牌。它做的是查询和编排,不是绕过权限去操作数据。

工具白名单无数据库直连最小权限

06

多端入口

运营端、商户端、管理端和外卖后台四套控制台,加上外卖 H5 与消费者 H5,分别对应平台方、商户方和消费者三个视角,看的是同一份数据。消费者端已由 H5 取代原来的 Android App。

Reactumi响应式消费者 H5

02架构一览

一个请求从浏览器到数据库,会经过哪几层

按流量方向从外到内说,所有组件都部署在同一个 K3s 集群里。

边缘接入CLOUDFLARE

Cloudflare 负责 DNS、TLS 证书与边缘缓存;这个 Worker 托管个人主页与本页,其余流量按原样回源,不做改写。

集群入口NGINX GATEWAY FABRIC

K3s 上的 Gateway API 实现统一收口:按域名与路径路由到对应服务,在入口做 TLS 终止、限流与灰度发布。

微服务SPRING BOOT 3

按领域水平拆分,每个服务独占自己的数据表,只通过版本化接口、可靠事件或事务分支协议协作,服务之间没有跨库查询。

一致性SEATA / OUTBOX

站内转账、钱包支付和内部冲正走短时 TCC;外卖订单、通道回调与开户走本地事务加 Outbox/Inbox 加幂等状态机,不用长事务。

数据与中间件DATA

MySQL 存业务数据,Redis 承载缓存与令牌,RabbitMQ 传递领域事件,Seata 协调分布式事务,对象存储承载头像等静态资源。

外卖和支付是两个独立服务:外卖不能直接改支付状态,支付也不能改外卖订单,两边靠事件和状态机对齐。这条约束看起来多余,但它决定了出问题时能不能查清楚。

03模块入口

六个可以打开的演示入口

都在同一个演示环境内,账号通用、数据互通,点开就是真实页面。

04演示账号

登录用的账号和密码

全部是演示数据。请不要修改密码,也不要填写任何真实的个人信息。

演示账号一览
系统账号密码 / 验证码入口
运营端 13800138000 MiniPay@123456 ops.su46proj.site
商户端 13900000009 MiniPay@123456 merchant.su46proj.site
管理端 13800138002 MiniPay@123456 admin.su46proj.site
消费者 H5 任意演示手机号 123456 app.su46proj.site
外卖后台 admin admin123 food-admin.su46proj.site
外卖 H5 任意演示手机号 123456 food.su46proj.site

消费者 H5 和外卖 H5 的短信验证码固定为 123456,手机号填任意演示号码即可。演示环境的数据可能会定期重置。

05使用说明

按这个顺序走一遍,十来分钟能看完主链路

从后台数据看到用户下单支付,再到订单流转,整条链路的每一步都有对应的入口。

  1. 先进管理端看数据

    打开 admin.su46proj.site,用 13800138002 / MiniPay@123456 登录,翻一遍支付单、渠道配置和账本分录,先看清楚一笔钱在系统里长什么样。

  2. 再对比运营端和商户端

    用 13800138000 登录 ops.su46proj.site、用 13900000009 登录 merchant.su46proj.site,同一个订单在平台视角和商户视角下的差别一眼就能看出来。

  3. 去外卖 H5 下一单

    打开 food.su46proj.site,选门店、加购物车并下单,用验证码 123456 登录,再用钱包完成支付。

  4. 回到外卖后台看订单流转

    用 admin / admin123 登录 food-admin.su46proj.site,找到刚才那笔订单,走一遍接单、配送、完成的状态流转。

  5. 打开消费者 H5 看用户端

    打开 app.su46proj.site,用任意演示手机号加验证码 123456 登录,看钱包余额与账单明细、打开收款码,再试一次沙箱转账,最后和米灵聊几句(回答是逐字流式出现的)。

  6. 试一下 AI 智能助手

    在米灵对话里查询订单或余额,观察它是通过白名单工具接口取数,而不是直接访问数据库;登录密码、支付密码和验证码都不经过模型。

消费者 H5 入口

用户在手机上的完整体验:短信验证码登录、米灵 AI 对话(逐字流式回答)、钱包余额与账单明细、个人收款码,以及沙箱转账与付款。金额与状态一律以后端权威接口为准,H5 只是一层界面。

https://app.su46proj.site/

打开 H5

演示环境说明:本站及所有子站都是技术演示(demo),账号、余额、订单与交易数据均为模拟生成的示例数据,不构成任何真实的支付、金融或资金服务,请不要向任何演示账号充值或转账。

这个平台由苏启航独立设计与实现,个人主页上有关于我、技术栈和其他项目的说明。

访问作者主页 su46proj.site