Comparar as assinaturas

Para garantir a integridade da resposta, você deve comparar a assinatura presente na IPN com o valor calculado na etapa anterior.

IMPORTANTE
Não pode comparar a assinatura da IPN com a assinatura que você enviou na sua solicitação de pagamento.
Se as assinaturas corresponderem,
  • você poderá então considerar que a resposta esta segura e continuar a análise.
  • caso contrário, o script deverá apontar uma exceção e avisar o Estabelecimento Comercial sobre a anomalia

Exemplo PHP:
if ($_POST['signature'] == $sign){
						
    //Processing data

}else{
    throw new Exception('An error occurred while computing the signature');
}

As assinaturas não correspondem por causa de:

  • erro de implementação (erro no seu cálculo, problema de codificação UTF-8, etc.),
  • erro no valor da chave usada ou na chave do campo vads_ctx_mode (problema freqüente quando passa em produção).
  • tentativa de corrupção dos dados.