← 返回项目列表
开放 API
合作伙伴 OpenAPI
供合作伙伴开通和管理账号的签名外部 API
搭建网关骨架、认证与账号开通 API;构建应用凭证服务 · 2025.11 — 2026.04
Go Gin gRPC HMAC-SHA256 MySQL/GORM Swagger
项目概述
一套外部 API,让合作伙伴系统可以在平台上创建和管理账号。我搭建了网关骨架、认证与签名、账号开通 API,以及背后的凭证服务。
核心技术亮点
01
AppId 与租户授权;HMAC-SHA256 请求签名,常量时间校验,5 分钟时间窗口
02
批量开通账号(每次请求最多 20 个,并发处理),每个账号编排 4 个下游服务
03
开通步骤失败时执行补偿回滚,并逐条返回成功/失败结果
04
应用凭证 gRPC 服务:签发 AppId/secret/数据密钥,支持启用/禁用,每个租户仅一个有效应用
05
提供 Swagger 文档,复用共享的链路追踪与日志中间件
核心实现
1
多步骤账号开通
每个账号:创建用户 → 创建钱包 → 设置信用额度 → 在下游服务商处注册。任一步失败都会触发补偿删除,批量请求逐条返回结果。
Why: 合作伙伴需要准确知道哪些账号成功,以便只重试失败的部分。
技术决策
| 技术决策 | 选择 | 替代方案 | 原因 |
|---|---|---|---|
| 请求签名 | 对 AppId + timestamp + nonce 做 HMAC-SHA256,常量时间比较,±5 分钟窗口 | 内部客户端使用的旧版 MD5 方案 | 对外 API 需要更强、更标准的签名构造,以及由服务端强制执行的时间窗口。 |