适用范围
本功能部署并完成数据库迁移后,新采购登记会把渠道类型、HTTPS 地址、协议版本及加密凭据绑定到一个不可变版本。订单只引用摘要,不保存凭据密文或明文。普通渠道改名、换地址或换凭据不会改写已登记订单的来源。
新订单使用新配置;旧订单查单、恢复、取消和回调验签使用其原版本。已有幂等键不能变成新采购。上游已经使旧凭据失效时,系统无法保证旧单仍可查询,但不会偷偷换用新账号,也不会自动重新采购。
历史订单
升级前没有可信来源快照的订单保持原数据,不自动把当前凭据回填为原采购凭据。查询/取消返回 409 supplier_order_source_missing,需管理员核对原上游账户、订单号和原始记录。
本期不提供“强制使用当前凭据”、自动补证或清理旧密文接口。人工核对不等于修改余额、退款或重新采购。需要补证时必须另走有权限、证据和审计的流程。
撤销
- 查看:
GET /api/mall/v1/admin/supplier-orders/{id}/source,需要supply.channels.read。 - 撤销:
POST /api/mall/v1/admin/supplier-orders/{id}/source/revoke,仅超级管理员;请求 JSON 的fingerprint必须等于查看接口返回的版本摘要。 - 查看响应包括
state(active、revoked、missing)、摘要及登记/撤销时间,不返回上游账号、地址或密文。 - 撤销影响该版本关联的所有订单,不只是 URL 指定的单笔订单。重复撤销幂等,不恢复旧版本。
- 撤销后新请求和回调验签被拒绝,迟到结果在落库事务中再验撤销状态。已发送到上游的请求无法追回,撤销不是上游退款或取消采购。
- 重新配置新凭据不会解除旧版本撤销;未撤销的新版本可用于新订单。
缺失/撤销均返回 HTTP 409 中文错误,不清空订单、配置或业务终态。订单已成功采购后,尚未确认的退款申请不把采购状态退回处理中;确认全额退款才进入取消状态。
保留与备份
被订单引用的加密版本不自动删除;与商城数据库和对应加密主密钥一起备份。仅备份数据库而丢失解密密钥,无法恢复旧凭据。不要把密文或密钥写入工单、日志或更新说明。
更新前确认
先核对待处理、状态不明、待退款和待履约的旧订单。没有来源快照的旧订单会停止自动恢复,应先确认原上游账户与处理记录,再联系平台制定处置方案;不要重复采购或把当前凭据强行补作旧订单来源。
保存可恢复的数据库、配置和加密密钥备份后,使用商城更新中心提供的正式更新路径。更新失败时保留原任务和恢复副本,按安装交付与商城更新说明处理。