跳到主内容
← 返回项目目录
运营中

独立开发 · 需求到上线 · 2025

物流出单自动化

串联商业发票解析、承运商面单与海关申报,减少跨系统重复录入。DHL 三项验收通过,FedEx 接口认证上线。

PythonFastAPISQLiteDHL MyDHL APIFedEx RESTDHL DPS

结果与范围

  1. 3/3DHL 验收用例
  2. 已通过FedEx 认证
  3. 2 家承运商在线

交付与结果

DHL 三项验收通过,FedEx 认证上线

我的职责
独立完成商业发票解析、承运商接口联调、幂等出单和面单申报流程。
数字的范围
3/3 指 DHL 三项验收测试;FedEx 认证指系统接口集成的认证上线,不是对个人的推荐,也不是长期零故障保证。
公开材料
可查看虚构数据的本地出单演示,费率为模拟值。承运商验收原件涉及账户信息,不在公开站展示。
阅读:幂等出单与未知状态的处理

遇到异常,怎么处理

下面是系统设计中的处理路径,展示方案的边界与取舍。

承运商请求超时
标记为 unknown,不自动重试;先在承运商侧核对是否已产生运单。
运单成功,本地落库失败
保留待补录记录,不把已经成立的外部运单当作已回滚。

要解决什么

出一票货,业务要把发票上的信息誊到承运商系统里,再誊一遍到申报系统。慢,而且抄错就是实打实的损失。

更麻烦的是重复出单:点两次、或者网络超时后重试,就可能真的产生两张运单 —— 那是要付钱的。

工作流程

按内容资料整理的语义流程示意,不作为运行结果证明。

  1. 01 解析商业发票 支持 xls / xlsx 与文本型 PDF
  2. 02 校对与补全 收发件人、明细、参数逐项确认
  3. 03 询价比价 跨承运商比服务档次与时效
  4. 04 幂等出单 键先落库再调用,未知状态不重试
  5. 05 面单与申报 面单落地,自动进海关申报队列

为什么这么选

幂等键什么时候写?

调承运商之前

调用前保留请求记录,便于识别重试与核对外部结果。若承运商返回未知状态,先人工核对;本地记录不能单独保证外部服务在任何故障下都不重复出单。

承运商返回超时怎么办?

标记 unknown,不自动重试

超时不等于失败,运单可能已经产生。未经核对直接重试可能重复计费,因此先在承运商侧确认结果,再决定后续操作。

本地落库失败要不要回滚已成功的运单?

不回滚

运单在承运商那边已经成立,本地回滚改变不了这个事实,只会让两边账对不上。宁可留一条待补录。

系统界面

本地演示实例 + 确定性演示数据,客户信息全部虚构

本地演示:填写包裹参数并查询服务;使用虚构数据与模拟费率