平台概述

EasyIT Pay 是一套 Rust 全栈公共支付平台,用于统一接入微信、支付宝等支付渠道,解决各渠道只能绑定单一域名的限制,让多个业务系统共享同一套收银台与回调能力。

为什么需要公共支付平台

问题平台方案
微信/支付宝商户号只能配置一个授权域名业务系统跳转至平台统一收银台 /pay/{token}
各业务重复对接支付 SDK平台封装 Provider,业务只调 Open API
密钥分散在多个项目渠道密钥集中配置在管理后台,AES 加密存储

三大应用

平台对外提供三套独立 Web 应用,路径互不干扰:

1. Web 站点(/web

  • 无需登录,面向开发者与运维人员
  • 服务介绍、架构说明、接入文档
  • 访问根路径 / 自动跳转至此

2. Admin 管理后台(/admin

  • 需登录(默认账号 lichv / li123456,可改密)
  • 接入应用管理、支付渠道配置
  • 订单管理、回调日志、修改密码

3. Pay 收银台(/pay/{token}

  • 用户支付页面,由业务系统创建订单后跳转
  • 展示商品信息与金额,选择微信/支付宝渠道
  • 支持演示模式,无真实密钥也可联调

技术架构

业务系统 ──Open API──▶ 支付平台 ──Provider──▶ 微信/支付宝
                │              │
                │              ├──▶ 收银台 /pay/{token}
                │              └──▶ 异步通知 notify_url
                └──▶ return_url 同步回跳
  • 后端:Rust + Axum + SQLx + MySQL
  • 模板:Askama + 静态 CSS/JS
  • 渠道:Provider 插件化,当前支持微信、支付宝,预留银联扩展

数据流简述

  1. 业务系统携带签名调用 POST /api/v1/orders 创建订单
  2. 平台返回 pay_url,用户浏览器打开收银台
  3. 用户选择渠道并完成支付(或演示模式模拟支付)
  4. 平台更新订单状态,向 notify_url 发送异步回调
  5. 用户浏览器跳转至 return_url

相关链接