关于AusPost eParcel API生产环境运单不显示的技术问询
首先明确回答你:是的,通过AusPost eParcel API创建的运单完全应该在你的eParcel账户后台显示——我之前做过三次AusPost API集成,所有通过API生成的运单都能在后台找到,所以你遇到的肯定是某个环节的问题。
结合我的经验,给你几个排查方向:
同步延迟问题:生产环境下,API创建运单后,后台系统的同步不是实时的。我曾经遇到过最长30分钟的延迟,尤其是刚切换到生产环境的前几天,AusPost的同步队列可能有积压。建议你等1-2小时后再去后台刷新查看,不要刚创建就急着找。
API参数的细微错误:虽然你核对了Location ID和产品编码,但还有几个容易忽略的点:
- 确认创建运单时的
account_number参数和你登录eParcel账户的编号完全一致(GetAccountDetails返回的account_number要和登录账户匹配,有些用户可能有子账户,容易搞混); - 检查是否传入了
customer_reference字段,有些情况下,后台需要这个字段来关联运单到你的账户视图,缺失的话可能导致运单“隐形”; - 验证
service_code是否对应eParcel后台支持的公开服务,比如某些API专属的定制服务可能不会在前台显示,但这种情况AusPost会提前告知。
- 确认创建运单时的
权限配置遗漏:切换到生产环境时,AusPost除了激活你的API密钥,还需要把密钥和你的eParcel账户做绑定。有时候他们可能只开通了创建运单的权限,没开通后台可见的关联权限。你可以在API调用
GetAccountDetails时,查看返回的services列表,确认你使用的运单服务是否在其中,且状态为active。后台视图筛选问题:别只盯着“待处理运单”标签页,去“已完成运单”“归档运单”甚至“所有运单”里找找。有时候API创建的运单如果直接标记为
dispatched,会跳过待处理环节直接进入归档。
我自己的踩坑经历:之前第一次上线生产环境时,也遇到过这个问题,后来发现是我在API请求里把account_number写成了子账户的编号,而我登录的是主账户,虽然运单创建成功了,但主账户后台看不到子账户的运单。修正后大概20分钟,运单就全部显示出来了。
如果以上都排查过还是不行,建议你把API创建运单的请求体(脱敏敏感信息)和GetShipment返回的运单详情保存好,再给AusPost发一次邮件——他们虽然响应慢,但有具体的运单ID和日志的话,排查速度会快很多。
内容的提问来源于stack exchange,提问作者Rudolf Ladyzhenskii

