TNT.com の追跡番号にチェックサムが使用される場合、どのようなチェックサムが使用されますか?
-
09-06-2019 - |
質問
私は追跡番号を識別するソフトウェアを作成しています (Google が FedEx や UPS の番号を検索するときに識別するのと同じ方法です)。ほとんどの宅配業者は、番号が有効な追跡番号であるかどうかを識別するために使用できる「加重平均モッド システム」などのシステムを使用しています。TNT の委託番号にそのようなシステムが使用されているかどうか、使用されている場合はそれが何であるか知っている人はいますか?TNT サポートに問い合わせましたが、担当者はそうではないと言いました...しかし、再確認したいと思います。
解決
さて、あなたが質問してから 3 か月が経ちましたが、同様のソフトウェアを作成しているときにこれを見つけました。私たちが知る限り、TNT は S10 追跡番号システム。つまり、それらの番号のタイプは AAA#########AA になります。最後の 2 文字は 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)