案例:让商品价格只有一个真相源

一次官网与 API 商业链路修复,重点不是改数字,而是消除前端决定价格的机会。

3 分钟阅读免费公开

一个常见的商业化实现是:官网写一份商品名称和价格,后端再写一份。页面看起来能下单,但两份配置迟早会产生差异。

这次修复的目标不是“把两个数字改成一样”,而是让系统结构不再允许前端成为价格来源。

问题结构

旧链路存在三个风险:

  1. 官网展示的商品 ID 与 API 不一致;
  2. 页面可以长期显示旧价格;
  3. 支付代理没有验证用户看到的金额是否仍等于订单金额。

只修正文案不能解决这些问题,因为下一次商品调整仍可能重复发生。

重新定义责任

API 的 Product 成为商品唯一真相源,负责名称、描述、价格和可售状态。官网只读取公开商品目录,并用 product_id 发起订单请求。

订单创建时由 API 保存金额快照。即使商品之后调价,已有订单仍能说明用户下单时确认的金额。

失败时关闭购买,而不是猜测

如果商品目录不可用、目标商品缺失或状态不可售,官网展示明确提示并关闭购买按钮。它不会回退到写死价格继续收款。

这是典型的失败关闭策略:宁可暂时少一次交易,也不创建金额不确定的订单。

支付前做最后一道核对

创建微信预支付之前,服务端代理比较页面提交的预期金额和订单金额。如果价格在用户浏览期间发生变化,流程中止并提示刷新确认。

最终支付金额仍由 API 根据订单决定,浏览器不能修改。

验证不只看正常路径

验收覆盖了目录成功、目录失败、商品缺失、表单错误、价格冲突和支付金额一致性。跨服务 Smoke Test 只读取健康状态和商品页面,不自动创建订单或真实支付。

这个案例的通用结论是:跨系统一致性不能依靠“记得一起改”,必须由责任边界、机器契约和失败策略共同保证。

方法看懂了,还需要落到你的业务里?

从一个真实问题开始。贝有科技提供 AI 实战问题解决、工作系统诊断和内容试产服务。

查看实战服务