Quelle somme de contrôle, le cas échéant, est utilisée pour les numéros de suivi TNT.com ?

StackOverflow https://stackoverflow.com/questions/57053

  •  09-06-2019
  •  | 
  •  

Question

J'écris un logiciel pour identifier les numéros de suivi (de la même manière que Google identifie les numéros FedEx ou UPS lorsque vous les recherchez).La plupart des coursiers utilisent un système, tel qu'un « système de mod moyenne pondérée » qui peut être utilisé pour identifier si un numéro est un numéro de suivi valide.Quelqu'un sait-il si les numéros d'envoi TNT utilisent un tel système, et si oui, de quoi il s'agit ?J'ai demandé l'assistance de TNT, et le représentant m'a dit que non...mais j'aimerais vérifier.

Était-ce utile?

La solution

OK, cela fait donc trois mois que vous avez demandé, mais je suis tombé dessus alors que j'écris un logiciel similaire.À notre connaissance, TNT utilise le S10 système de numéro de suivi.Ce qui signifie que leurs numéros seront du type AA#########AA.Les deux dernières lettres correspondant à un code pays ISO/IATA.Cela dit, TNT utilise WW, ce que nous pensons devoir représenter dans le monde entier.Ce n'est pas tout à fait une réponse, du moins il ne s'agit pas de sommes de contrôle ou d'algorithmes, mais cela pourrait-il être utile ?J'espère que cela pourra aider

saule

Autres conseils

Autant que je sache, il n'y en a pas.Désolé.

Je suppose que vous essayez de valider le numéro de suivi saisi pour vous assurer qu'il a été correctement saisi ?

-Kevin Fairchild

Je crois qu'il existe un chiffre de contrôle/somme de contrôle, peut-être un dérivé de MOD10 mais je n'ai aucune idée de quel algorithme il s'agit, appelé le 9ème chiffre par TNT.Ce serait bien de le savoir ???

Tout ce que je sais, c'est que le chiffre de contrôle 12345678 est 5 et que le chiffre de contrôle 22345678 est 8.

Il s'agit en fait du MOD 11 VB.net que j'ai écrit comme suit :

  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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top