修复后端全量测试中的 4 个既有失败,同时不扩大接口加密能力范围,不改变与前端已经稳定使用的 AES-GCM 协议。
test_encrypt_decrypt_roundtrip_cbc 向 encrypt_json、decrypt_json 传入不存在的 alg="cbc" 参数。当前后端和 Web 管理端均只实现 AES-GCM,该测试与实际加密协议不一致。list_audits、list_receipt_confirm_details、list_refund_confirm_details 只按 create_time DESC 排序,遗漏测试和业务模型约定的 order_num ASC 优先级。encrypt_json(payload, key) 和 decrypt_json(cipher_text, key) 的 AES-GCM 单一接口,不增加 CBC 分支。decrypt_json 抛出 ApiCryptoError,从而保留并增强认证加密的安全回归覆盖。不选择 CBC 兼容方案,因为前端没有 CBC 调用,加密中间件也没有算法协商字段;仅为通过遗留测试增加 CBC 会扩大协议和安全维护面。
三个待修复查询统一使用:
order_by(Model.order_num.asc(), Model.create_time.desc())
具体对应:
BizProtocolAudit.order_num ASC, create_time DESC;BizProtocolPaymentDetail.order_num ASC, create_time DESC;BizProtocolPaymentDetail.order_num ASC, create_time DESC。不修改已确认列表的 update_time DESC 排序,因为相关测试已经通过,且它表达的是处理完成时间顺序。
order_by 调用。test_api_crypto.py 与 test_collection_protocol_conventions.py。./scripts/update-graph.sh backend,再确认工作区差异只包含本次修复和既有用户改动。order_num 非相同记录的展示顺序;order_num 相同时仍按创建时间倒序。