Qual soma de verificação, se houver, é usada para os números de rastreamento da TNT.com?

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Estou escrevendo um software para identificar números de rastreamento (da mesma forma que o Google identifica números FedEx ou UPS quando você os procura).A maioria dos transportadores usa um sistema, como um "sistema de modificação de média ponderada", que pode ser usado para identificar se um número é um número de rastreamento válido.Alguém sabe se os números de remessa da TNT usam esse sistema e, em caso afirmativo, o que é?Perguntei ao suporte da TNT e o representante me disse que não...mas eu gostaria de verificar novamente.

Foi útil?

Solução

OK, já se passaram três meses desde que você perguntou, mas me deparei com isso enquanto estava escrevendo um software semelhante.Tanto quanto sabemos, a TNT utiliza o S10 sistema de número de rastreamento.O que significa que seus números serão do tipo AA#########AA.Com as duas últimas letras correspondendo a um código de país ISO/IATA.Dito isto, a TNT usa WW, que acreditamos que deve representar em todo o mundo.Esta não é exatamente uma resposta, pelo menos não se trata de somas de verificação ou algoritmos, mas pode ser útil?espero que ajude

Salgueiro

Outras dicas

Pelo que eu posso dizer, não há nenhum.Desculpe.

Presumo que você esteja tentando validar o número de rastreamento inserido para ter certeza de que foi inserido corretamente.

-Kevin Fairchild

Acredito que exista um dígito de verificação / soma de verificação, possivelmente um derivado do MOD10, mas não tenho ideia de qual algoritmo é, referido como o 9º dígito pela TNT.Seria bom saber???

Tudo o que sei é que 12345678 dígito de verificação é 5 e 22345678 dígito de verificação é 8.

Na verdade, é o MOD 11 VB.net que escrevi é o seguinte:

  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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top