yml2213
|
d6b426ab2a
|
查询绑定结果增加预期账号比对:mismatch 提前拦截
- 下单 data 传了 game_account 时,bind-result 返回 expected_game_account 与 mismatch
- 绑定账号与预期不一致时 message 提示,配合 submit 已有的一致性校验提前发现
- 对接文档补充 mismatch 字段与说明
|
2026-08-03 17:47:12 +08:00 |
|
yml2213
|
19ada1282e
|
新增查询绑定结果接口(自建发货页轮询角色信息)
- GET /api/client/v1/orders/{order_no}/delivery/bind-result?bind_uuid=xxx
- 返回 bound/game_account/role_name/game_channel;未绑定返回 bound=false(不报错,供轮询)
- 对接文档自建发货页模式新增该接口,注明轮询建议间隔
|
2026-08-03 17:10:50 +08:00 |
|
yml2213
|
8da9dcec43
|
发货订单列表移除上游单号列,文档弱化内部发货单号
- 前端订单表格删除「上游单号」列(商户无需关注)
- 对接文档 provider_order_no 标注为平台内部发货单号
- 后端 provider_order_no 保留(防重复发货标记)
|
2026-08-03 16:31:50 +08:00 |
|
yml2213
|
235ada0786
|
优化导航栏缩小按钮
|
2026-08-03 16:21:53 +08:00 |
|
yml2213
|
90e5690a0a
|
对接文档移除顶部「开放 API/API 密钥」切换按钮,统一由左侧目录导航
|
2026-08-03 16:07:31 +08:00 |
|
yml2213
|
cf2a1b452c
|
对接文档配色优化:分组标题品牌蓝+分隔线,接口项/子项灰阶拉开,小节标题蓝竖线区分
|
2026-08-03 15:50:34 +08:00 |
|
yml2213
|
4406d492d7
|
对接文档目录字号优化:分组标题 12→14px 加粗,接口项/子项同步放大,目录加宽
|
2026-08-03 15:18:07 +08:00 |
|
yml2213
|
b7b9132242
|
对接文档重构:两种发货对接方式分开展示
- 左侧目录按分组展示:基础接口 / 发货链接模式 / 自建发货页模式 / 回调 / 附录
- 概述页发货对接方式对比表强化(适用场景/接口顺序/建议)
- 创建订单响应示例 data 统一为约定字段,补充 201/200 状态说明
- 对外响应字段 upstream_order 更名为 delivery(result_data 存储键兼容旧数据)
|
2026-08-03 14:48:30 +08:00 |
|
yml2213
|
4019b657c4
|
对接文档去除上游概念,只展示商户对接平台
- 文档移除所有上游/发货平台/BFF 表述:接口字段说明、示例、推荐流程全部中性化
- 代码用户可见文案同步中性化:提交发货 message、错误提示、发货配置相关措辞
- 概述去掉 /api/open/v1 上游链路提示
|
2026-08-03 14:34:58 +08:00 |
|
yml2213
|
f95075e2e4
|
data 透传闭环:发货数据回显、回调带回,并限制 2KB
- 「查询发货数据」响应新增 data(下单透传原样回显,供自建发货页预填/展示)
- 回调 payload 带回 data(下单传 → 回调收,商户对接免回查)
- 创建订单 data 限制最长 2048 字节
- 文档更新:data 用途(自建页预填/回调/上游查单约定字段)、发货数据与回调示例
- 单测覆盖 data 回显
|
2026-08-03 14:32:08 +08:00 |
|
yml2213
|
a44f58cd0f
|
优化开放 API 文档:创建订单响应示例补全为真实完整字段
- 响应示例从 4 个字段补全为完整订单对象(product/金额/手续费/时间等 21 字段)
- 备注补充双单号说明:下单后保存 order_no 用于后续链路,client_order_no 仅用于幂等
- 说明 data 透传字段行为
|
2026-08-03 13:53:18 +08:00 |
|
yml2213
|
ef8b8a7213
|
回调签名改为与开放 API 一致的字典序拼接风格
- 签名串由 timestamp+换行+bodyhash 改为 body_sha256=<hash>×tamp=<unix秒>(ASCII 字典序 & 拼接)
- 同步更新对接文档
|
2026-08-03 11:48:10 +08:00 |
|
yml2213
|
3e8526d5d7
|
对接文档新增回调通知章节(事件/签名/推送重试)
- 回调文档三个区块:回调通知(事件列表、推送示例、接收方要求)、签名校验(算法与伪代码)、推送与重试(微信式 16 次退避序列)
- 概述一句话上手补充回调配置步骤
|
2026-08-03 11:33:36 +08:00 |
|
yml2213
|
27a86f5311
|
回调优化为单地址 upsert 配置并支持重置密钥
- 回调订阅改为单记录 upsert:保存即覆盖(URL/事件/状态),自动停用其他订阅,无新增/删除
- 新增重置密钥:保存时传 rotate_secret=true 重新生成密钥并返回一次,解决密钥丢失无法找回
- 删除不再使用的 PATCH /callbacks/:id/status 路由及对应 handler/service 死代码
- 前端回调页改为内联表单(URL/事件/状态),新增重置密钥按钮(确认后展示新密钥一次)
- 补充单地址复用、disabled 不投递、密钥轮换测试
|
2026-08-03 11:23:46 +08:00 |
|
yml2213
|
cf2ee96baa
|
优化回调推送:参考微信/支付宝机制,限制每商户单一回调地址
- 回调重试改为微信式固定退避序列(15s/15s/30s/3m/10m/20m/30m/30m/30m/1h/3h/3h/3h/6h/6h),共 16 次尝试
- 重试次数/推送超时/退避序列可通过环境变量配置(CALLBACK_MAX_ATTEMPTS/CALLBACK_PUSH_TIMEOUT_SECONDS/CALLBACK_RETRY_SCHEDULE)
- 每个商户仅允许 1 个 active 回调订阅,创建前校验,先停用后新建
- 前端回调页提示推送策略与单地址限制
- docker-compose 透传回调相关配置
|
2026-08-03 10:57:21 +08:00 |
|
yml2213
|
7fe4a05ed7
|
优化api密钥
|
2026-08-03 10:38:06 +08:00 |
|
yml2213
|
9a3471cc61
|
优化钱包界面:改名积分明细,添加筛选功能,优化表格列宽
- 侧边栏和页面标题改为'积分明细'
- 新增关联单号、收支类型筛选功能
- 后端 ledger API 支持 reference_no 和 type 筛选参数
- 表格列宽优化,流水号完整展示,备注列限制宽度
- 隐藏固定 tab 模式下的商户介绍文字
|
2026-07-31 20:18:06 +08:00 |
|
yml2213
|
8672ab2dca
|
优化 API 密钥管理与展示
- 每个商户限制最多 5 个 API 密钥,超限拒绝创建并提示
- API 密钥权限列改用中文标签展示,新增按用途命名提示
- 优化 API 密钥表格列宽,App Key 完整单行展示
- 补充密钥数量上限测试
|
2026-07-31 19:58:17 +08:00 |
|
yml2213
|
eac025c92f
|
加强发货提交可靠性并统一契约口径
- 发货提交记录阶段推进与失败分类,失败不再清空 result_data
- 超时巡检区分已提交上游与提交中断两类卡单,避免误判
- 已提交上游的失败订单禁止自动重发,防止重复发货
- ship_attempts 仅在 claim 时计数,失败阶段只记录分类信息
- CanFulfill 对已提交上游的失败单返回不可发货
- 删除预留的 pending 订单状态,统一订单状态模型
- 契约改名:order.fulfillment.updated -> order.shipping.updated,fulfillment:read -> shipping:read
- 文档修正 scope 为或关系
|
2026-07-31 18:42:52 +08:00 |
|
yml2213
|
4aa5258c2d
|
统一发货口径并保护结果数据
|
2026-07-31 17:45:20 +08:00 |
|
yml2213
|
04130e5ec8
|
统一订单单状态模型
|
2026-07-31 17:02:19 +08:00 |
|
yml2213
|
30362f14bd
|
简化开放下单幂等参数
|
2026-07-31 15:25:26 +08:00 |
|
yml2213
|
71cde7e32b
|
优化商户功能导航与表格
|
2026-07-31 15:08:26 +08:00 |
|
yml2213
|
db4a00f25d
|
SkinHub修改
|
2026-07-31 14:20:18 +08:00 |
|
yml2213
|
371481126e
|
优化开放 API 文档界面
|
2026-07-31 14:16:29 +08:00 |
|
yml2213
|
949a0eb8f7
|
统一时间格式和时区
|
2026-07-31 12:57:17 +08:00 |
|
yml2213
|
667bfbde06
|
补开放接口文档
|
2026-07-31 12:29:43 +08:00 |
|
yml2213
|
e4c1306216
|
完善发货链接签名和作废恢复
|
2026-07-31 11:43:13 +08:00 |
|
yml2213
|
6ca226ce4b
|
接入无感发货流程
|
2026-07-31 10:45:13 +08:00 |
|
yml2213
|
f29f3eb841
|
关闭公开注册并优化仪表盘
|
2026-07-31 09:39:18 +08:00 |
|
yml2213
|
5f409b397c
|
管理员即可展示API调试界面,移除DEV模式限制
|
2026-07-30 20:15:40 +08:00 |
|
yml2213
|
5858ff59ae
|
修正发货回调流程
|
2026-07-30 19:35:34 +08:00 |
|
yml2213
|
254ba9b721
|
恢复测试订单创建
|
2026-07-30 19:04:38 +08:00 |
|
yml2213
|
f4f77a5d16
|
新增 API 调试工具页面,支持填写 AppKey/Secret 测试开放接口
- 仅开发模式下管理员可见,菜单入口通过 import.meta.env.DEV 控制
- 浏览器端 Web Crypto API 计算 HMAC-SHA256 签名,与后端 BuildOpenV1Sign 一致
- 接口选择采用卡片式 Radio 列表,路径/查询/请求体参数动态生成
- AppKey/Secret 自动持久化到 localStorage,支持一键清除
- 展示签名详情(签名串/X-Sign)和完整响应
|
2026-07-30 16:47:54 +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
|
4165fc4d01
|
优化api文档
|
2026-07-30 15:44:08 +08:00 |
|
yml2213
|
beb171b751
|
fix(ui): 优化商品列表列宽,SKU 不再换行
- SKU 列 180→200px 并加 ellipsis,长 SKU 单行省略不换行
- 名称列加 width:200 + ellipsis,不再无限占满剩余空间
- 目录编码 160→140,售价/成本 110→100,库存/状态 90→80,操作 90→80
- SKU Typography.Text 加 maxWidth:100% + ellipsis 确保超长文本单行截断
|
2026-07-30 15:29:13 +08:00 |
|
yml2213
|
502b719f48
|
feat: 平台管理员可在前端分配商品给商户
后端:
- service: 新增 ListProductCatalog(自营商户商品目录)、ListMerchantProductsByAdmin、AssignProducts(按目录ID批量同步商户商品,未勾选的已有商品会被移除)
- handler + router: 新增 GET /platform/product-catalog、GET /platform/merchants/:id/products、POST /platform/merchants/:id/products/assign 三个管理员路由
前端:
- types: 新增 ProductCatalogItem 类型
- api: platformApi 新增 productCatalog / merchantProducts / assignProducts
- PlatformMerchants: 商户列表操作列新增「分配商品」按钮,弹窗内以表格+复选框展示平台商品目录,支持全选/清空/重置,打开时按已有商品预选,保存后同步分配结果
实测:创建商户自动获得27个默认商品,管理员可随时增减调整
|
2026-07-30 15:20:02 +08:00 |
|
yml2213
|
0de0ad9e9d
|
货币体系: 全平台统一使用积分(POINT)替代人民币(CNY)
后端:
- 模型 currency 默认值 CNY→POINT (MerchantProduct/WalletAccount/FulfillmentOrder)
- DashboardStats TotalSales/TotalFees 从 float64 改为 int64,去掉 /100.0 转换
- 上游 OpenOrderQuery.Amount 从 float64 改为 int64,直接返回积分整数
- 钱包/商品创建时 currency 默认 POINT
前端:
- 去掉 centsToYuan/yuanToCents 转换函数,金额直接用整数积分
- money() 显示从 ¥X.XX 改为 X 积分
- 商品售价/成本表单字段名改回 price_amount/cost_amount,precision 改 0
- 钱包调整表单 amount_yuan→amount,precision 改 0
- 手续费固定金额表单 precision 改 0,label 改积分
- 币种选项 CNY→POINT
- Dashboard 成交金额/手续费 suffix 元→积分,去掉 precision
数据库:
- 新增迁移 004: currency 默认值 CNY→POINT,存量数据更新
|
2026-07-30 14:30:34 +08:00 |
|
yml2213
|
bafe41a3ea
|
重构: 手续费改为百分比/固定二选一,清理旧 Skin/Order/ShipLog 演示链路
手续费:
- 新增 fee_type 字段(rate/fixed),百分比与固定金额二选一,不再叠加
- calculateServiceFee 按 fee_type 分支计算
- 商户创建/更新校验 fee_type,订单落库快照 fee_type
- 前端表单改为下拉选择手续费类型,动态显示对应输入框
- 测试拆为 TestFeeRate + TestFeeFixed
清理旧链路:
- 删除旧 Skin/Order/ShipLog 模型及 OrderService/SkinService
- Dashboard 迁移到 FulfillmentService
- 上游 /api/open/v1 改为基于 FulfillmentOrder 实现,接口契约不变
- 推送留痕改用 AuditLog,不再建 ShipLog 表
- 删除前端 Skins/Orders/ShipLogs/Distributors 页面及路由、菜单、API、类型
- 新增迁移 003: 添加 fee_type 列并 DROP 旧表
|
2026-07-30 14:12:27 +08:00 |
|
yml2213
|
83429456a6
|
实现多商户履约平台基础
|
2026-07-30 12:02:32 +08:00 |
|
yml2213
|
24d4e76c7f
|
增加各种状态的新建测试单
|
2026-07-20 18:13:10 +08:00 |
|
yml2213
|
ee78b80cd3
|
优化签名排序逻辑
|
2026-07-20 16:34:23 +08:00 |
|
yml2213
|
e4d0a71963
|
支持 .env 配置,并完善源头对接文档与测试订单
- 增加 .env.example 与 godotenv 加载,start.sh 自动读环境变量
- 重写发给源头的开放接口对接文档
- 订单页支持创建测试订单(可直接已支付并复制店铺订单号)
|
2026-07-20 16:19:57 +08:00 |
|
yml2213
|
89cdd32181
|
对接皮肤源头开放接口:查询、发货推送与 HMAC 签名鉴权
- 新增订单查询与发货结果推送开放接口,支持 can_ship 与幂等
- 鉴权采用 X-Api-Key + Timestamp + Nonce + HMAC-SHA256 签名
- 订单扩展发货字段与 ship_logs,管理端增加发货记录与开放文档页
|
2026-07-20 16:06:44 +08:00 |
|
yml2213
|
829bea309d
|
导入和平精英商品目录并优化皮肤列表展示
- 皮肤增加 sku 字段,启动时按 sku 幂等导入 27 个和平精英商品
- 佣金默认 0,支持中英文名搜索
- 列表去掉品类列并固定列宽,避免中文名列空白过大
- 新增商品中英文名对照文档
|
2026-07-20 15:38:38 +08:00 |
|
yml2213
|
45db0aa4b9
|
init
|
2026-07-20 14:58:57 +08:00 |
|