Repository navigation
TokenRouter 0.2.6
本版本包含一项非常重要的支付安全漏洞修复,建议所有用户尽快升级,使用易支付及其兼容平台的站点请优先安排升级。
升级注意
- 易支付回调现在会拒绝非标准字段、重复字段及格式不合法的必填字段。使用易支付兼容平台时,请确认通知字段符合标准协议;携带额外字段的回调会被拒绝,订单可通过主动查单确认付款。
- 发布归档统一使用
tokenrouter_<版本>_<系统>_<架构>,包内可执行文件名为tokenrouter。本版移除sub2api_兼容归档及包内的sub2api文件,只识别这些旧名称的更新器需要手动升级。 - 源码维护脚本请使用仓库根目录的
make check、make verify、make fmt、make fmt-check、make hooks和make security。旧的verify-*、后端测试及deploy/Makefile入口已移除;前端 pnpm 版本从.pnpm-version迁至frontend/package.json的packageManager字段。
优化改进
- 推送前检查按改动文件选择格式、lint、单元测试和前端关联测试,在当前工作区执行。CI 分别运行全量检查,并按 lint、测试和构建复用 Go 缓存,减少重复验证和缓存写入。
- 后端单元测试统一由
go test ./...执行,无需unit构建标签。集成测试按需启动 PostgreSQL 和 Redis,身份与推广测试复用迁移模板,并调整容器就绪等待和清理流程。 - 根目录
make build先生成前端资源,再编译嵌入前端的服务端;make build-backend用于单独构建后端。前端类型检查覆盖应用和构建配置,资源打包提供独立的build:assets入口。
Bug 修复
- 修复易支付支付通知校验中的安全漏洞。验签前检查回调字段及其内容,核对商户身份、支付方式和有效金额,拒绝混入的下单参数及重复字段,防止不合法通知进入付款处理流程。
- 修复支付返回地址可携带用户自定义参数的问题。下单时清除查询参数和片段,拒绝带用户信息或非法主机字符的地址,结果页的订单与恢复参数由服务端生成。
- 补齐 pnpm 12 在锁文件中需要的自身版本和各平台安装包记录,修复 CI 冻结安装失败的问题。
- 修正中英文 README 的 CI 徽章和检查链接,使其指向当前工作流。
📥 Installation
Docker:
# GitHub Container Registry
docker pull ghcr.io/tokenflux/tokenrouter:0.2.6One-line install (Linux):
curl -sSL https://raw.githubusercontent.com/TokenFlux/TokenRouter/main/deploy/install.sh | sudo bashManual download:
Download the appropriate archive for your platform from the assets below.