如何区分UPS Mail Innovations和USPS跟踪号码

3
我在尝试通过提供的跟踪号码识别运输承运人,如果这是UPS Mail Innovations号码。我正在编写一个小型的C#库来完成此任务,我找到的最好的资源是一个基于Ruby的称为tracking_number的库,但它不能处理UPS MI。根据我尝试的所有可能验证,它被解码为USPS。例如,跟踪号码“92748999955488513006484872”被解码为USPS,而不是UPS MI号码(可以通过UPS MI网站www.ups-mi.net进行跟踪)。
问题:如何区分UPS Mail Innovations和USPS跟踪号码的规则是什么?

为什么不问UPS呢? :) 一旦你知道了规格,我们就可以帮忙写代码。 - Wiktor Stribiżew
我已经问过他们了,只是他们还没有回答。 - kalitsov
2个回答

3

背景

UPS Mail Innovations 使用多种不同类型的跟踪号码

上面较长的数字确实是美国邮政服务(USPS)的“智能邮件®包裹条形码”(IMpb)号码。(在本例中,它有26位数字,但还有其他有效长度。)

前缀92标识它(对于大多数实际用途而言)为邮政跟踪号码。(`92'是GS1 应用标识符,“公司内部信息”;当用于跟踪号码/条形码时,USPS将其称为“渠道应用标识符”。)

截至2021年,您的跟踪号码中的服务类型代码/STC(不要与服务类型ID/STID混淆 - 这些仅用于信件邮件)为748,表示“包裹选择轻型:USPS跟踪”。

可能的解决方案

为了回答这个问题,您可以尝试以下两种方法来识别这种类型的邮件。(当然,您应该准备处理假阳性和假阴性。)

  1. 确认邮寄者使用的6位或9位邮件标识码(Mailer ID),这可以在您的数据中看到,经过少量的发货后就可以看到;在这种情况下,UPS Mail Innovations(UPS MI)的邮件ID可能是999955 488
  2. 查询UPS和USPS跟踪API,并比较结果。如果包裹已经发货,但USPS没有显示任何跟踪事件,那么它可能是一个UPS MI包裹,尚未被送达到目的地分拣设施或邮局。

由UPS MI交付的包裹通常应该由邮递员作为他们正常的日常邮件投递给客户,但在极端情况下(例如,如果当地邮局积压并且不接受包裹投递 - 这在2021年初发生过),UPS员工可能会进行最终的客户交付。


注:

这个跟踪号码的条形码将有额外的数字编码。它将以420的GS1 AI开头,USPS称其为“邮政路由代码应用标识符”,后面跟着一个5或9位数字的ZIP邮政编码。(有关详细信息,请参见规范。)

^根据IMpb实施指南,第2.5.1.1节:

有效的通道应用标识符是“91”、“92”、“93”、“94”和“95”


原问题提供的例子分析:
Example tracking number:  92748999955488513006484872
                         |                          |
                         0         1         2     2|
              26 digits: 012345678901234567890123456|

示例追踪号中数据结构的分解:
R-AI*  ZIP Code*   |  AI  STC   MailerID     Serial        Check digit
---    ----- ----  |  --  ---   ------ ---   -----------   -
420    nnnnn-nnnn  |  92  748   999955 488   51300648487   2

| ----- * ----- |
        * Suppressed in printed tracking number; 
         (only present encoded in barcode data)

Fields:
       R-AI = Postal Routing Code Application Identifier
   ZIP Code = 5-digit or 9-digit postal code of destination (or next hop)
        STC = Service Type Code
         AI = Channel Application Identifier
  Mailer ID = 6 or 9 digit mailer ID (assigned by USPS)
     Serial = this must be unique for at least 6 months for each mailer
Check digit = Mod10 check digit

1
根据联合包裹服务(UPS)客户支持,UPS邮件创新追踪号与USPS追踪号格式相同,无法区分。一旦包裹到达USPS,可以在那里跟踪。

公正地说,我非常怀疑 UPS 客户支持中的任何人都了解 USPS 的追踪号码(也不应该了解)。他们的系统很可能只是自动分配这些号码;实际上它们可能是通过 USPS API 进行分配的。 - Jim Grisham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接