yml2213
|
a47b61a98d
|
refactor(sign): 抽取公共签名原语 signutil,三套签名串格式保持不变
商户侧 /api/client/v1、源头侧 /api/open/v1 与乐玩开放平台各有一套签名实现,
其中语义完全一致的部分重复了多份,任一处修复都容易漏改另外两处。
- 新增 internal/pkg/signutil,只收敛四类一致性原语:HMAC-SHA256→hex、
body SHA256 摘要、时间戳偏差校验、常数时间比较
- 中间件与 lewan 改为调用该包,删除 middleware 里重复的 hmacSHA256Hex 与 abs64
- 刻意不统一「签名串构造」:三者拼接方式是对外契约且互不相同
(商户:字典序 & + body 摘要;源头:字典序 & + body 原文;乐玩:换行 6 行),
强行合并会直接改变握手结果
- 保留各处原有细节语义:商户侧十六进制签名大小写不敏感、乐玩签名原样比较、
VerifyWebhook 在 allowedSkew<=0 时仍要求时间戳可解析
验证:三套方案既有端到端测试全部通过(含乐玩官方测试向量、大写签名、重放拒绝);
新增 signutil 已知向量与偏差/比较边界测试,以及 VerifyWebhook 边界语义测试。
|
2026-10-06 19:53:55 +08:00 |
|
yml2213
|
ec76844da8
|
feat(log): 全面重构日志系统,支持日志级别、去除ANSI乱码并抑制高频轮询
|
2026-09-18 15:04:38 +08:00 |
|
yml2213
|
ee956e2e01
|
优化发货接口对接流程
|
2026-07-30 23:44:50 +08:00 |
|
yml2213
|
a16e518b6c
|
优化开放接口日志分类
|
2026-07-30 21:07:10 +08:00 |
|
yml2213
|
2f0104be07
|
完善开放接口日志并修复调试页刷新
|
2026-07-30 18:04:56 +08:00 |
|
yml2213
|
881ef40fb7
|
refactor(openapi): 客户端签名统一为字典序+&拼接风格
- BuildOpenV1Sign 改为 app_key/body_sha256/method/nonce/path/timestamp
按 ASCII 字典序用 & 拼接,与上游 BuildSignString 风格一致
- body 以 SHA256 摘要参与签名,避免大 body 与特殊字符问题
- 同步更新中间件调用点、测试用例与前端鉴权文档
|
2026-07-30 15:53:09 +08:00 |
|
yml2213
|
83429456a6
|
实现多商户履约平台基础
|
2026-07-30 12:02:32 +08:00 |
|
yml2213
|
47b0dd5a49
|
开放接口增加详细调试日志,并支持控制台与文件双写
- OPEN_API_DEBUG 记录鉴权、查单、推送业务字段与 req_id
- LOG_FILE 默认 logs/app.log,标准日志/Gin/GORM 同时输出控制台与文件
|
2026-07-20 21:48:52 +08:00 |
|
yml2213
|
ee78b80cd3
|
优化签名排序逻辑
|
2026-07-20 16:34:23 +08:00 |
|
yml2213
|
89cdd32181
|
对接皮肤源头开放接口:查询、发货推送与 HMAC 签名鉴权
- 新增订单查询与发货结果推送开放接口,支持 can_ship 与幂等
- 鉴权采用 X-Api-Key + Timestamp + Nonce + HMAC-SHA256 签名
- 订单扩展发货字段与 ship_logs,管理端增加发货记录与开放文档页
|
2026-07-20 16:06:44 +08:00 |
|