Какая контрольная сумма (если таковая имеется) используется для номеров отслеживания TNT.com?
-
09-06-2019 - |
Вопрос
Я пишу программное обеспечение для определения номеров отслеживания (точно так же, как Google идентифицирует номера FedEx или UPS, когда вы их ищете).Большинство курьеров используют такую систему, как «система средневзвешенных модификаций», которую можно использовать для определения того, является ли номер действительным номером отслеживания.Кто-нибудь знает, используется ли такая система для номеров накладных TNT, и если да, то что это такое?Я обратился в службу поддержки TNT, и представитель сказал мне, что они этого не делают...но я бы хотел перепроверить.
Решение
Хорошо, прошло три месяца с тех пор, как вы спросили, но я наткнулся на это, когда пишу аналогичное программное обеспечение.Насколько нам известно, ТНТ использует С10 система отслеживания номеров.Это означает, что их номера будут типа AA#########AA.Последние две буквы соответствуют коду страны ISO/IATA.Однако TNT использует WW, что, по нашему мнению, должно означать во всем мире.Это не совсем ответ, по крайней мере, речь не о контрольных суммах или алгоритмах, но может быть это будет полезно?надеюсь, это поможет
Ива
Другие советы
Насколько я могу судить, его нет.Извини.
Я так понимаю, вы пытаетесь проверить введенный номер отслеживания, чтобы убедиться, что он введен правильно?
-- Кевин Фэйрчайлд
Я считаю, что существует контрольная цифра / цифра контрольной суммы. Возможно, это производная от MOD10, но понятия не имею, что это за алгоритм, который TNT называет 9-й цифрой.Было бы приятно узнать???
Все, что я знаю, это 12345678 контрольная цифра — 5, а 22345678 — контрольная цифра 8.
На самом деле это MOD 11 VB.net, который я написал следующим образом:
Dim number As String = TextBox1.Text
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim check_digit As Integer
A = (CInt(Mid(number, 1, 1)) * 8) + (CInt(Mid(number, 2, 1)) * 6) + (CInt(Mid(number, 3, 1)) * 4) + (CInt(Mid(number, 4, 1)) * 2) + (CInt(Mid(number, 5, 1)) * 3) + (CInt(Mid(number, 6, 1)) * 5) + (CInt(Mid(number, 7, 1)) * 9) + (CInt(Mid(number, 8, 1)) * 7)
B = ((A \ 11) * 11)
C = A - B
If C = 0 Then
check_digit = 5
End If
If C = 1 Then
check_digit = 0
End If
If C <> 0 And C <> 1 Then
check_digit = 11 - C
End If
MsgBox(number & check_digit)