senderHash sandbox para teste unitário

Comentários

11 comentários

  • Felipe Olimpio

    Olá Tiago, 

    O senderHash é um parâmetro necessário até mesmo na utilização de testes dos Checkouts do PagSeguro. Neste caso é importante sempre gerar o senderHash assim que for efetuar um checkout. 

    O mesmo vale para nosso ambiente de testes: Sandbox. Ou seja, não possuímos um senderHash mock para testes.

  • Tiago Gouvêa

    Ok. Grato pela resposta rápida Felipe.

    O senderHash "dá direito" a solicitar um creditCardToken apenas? Posso gerar um senderHash e usar ele diversas vezes nos testes unitários do backend?

    Qual a limitação de uso de um senderHash?

  • Sophia Suri Silva

    Tiago,

    SenderHash não é associado para a geração do cartão de crédito, ele é associado a identificação do comprador. Checkout com boletos por exemplo, não terá token de cartão de crédito porém terá senderHash. Entende?

    O Senderhash deve ser gerado para cada requisição de pagamento.

  • Tiago Gouvêa

    Ok. Fiz o seguinte:

    1 - Criei um HTML que obteve a sessão e o senderHash pela url do sandbox com sucesso.

    2 - Enviei uma solicitação para o meu backend passando senderHash e os demais dados

    3 - Meu backend solicitou o registro de um boleto, usando o hash recebido mas então obtive

    [53091] - sender hash invalid

    * Conferi duplamente que chamo a url de sandbox no frontend, que uso as mesmas credenciais no backend, e que o environment é sandbox no backend também.

    * Fiz um teste e mandei o hash null, dai obtive um "Internal Server Error" do servidor.

    Alguma sugestão?

  • Flávio Sena

    Você tem algum link para eu testar esse comportamento? Quero ver a parte de geração e captura do senderHash.

  • Tiago Gouvêa

    Grato pelo retorno Flávio.

    Fiz um gist com o meu HTML de testes, confere aqui.

    O que estou fazendo agora (para fins de teste):

    1 - Obtenho o session id pelo backend usando as credenciais que tenho no env sandbox. Exemplo de retorno obtido: ae6700020e5a49c49a05c2a6d23db8c3

    2 - Informo essa session no arquivo HTML e carrego.

    3 - O html registra no console o hash obtido com sucesso.

    4 - Se eu permitir no JS criar o token do cartão, ele cria com sucesso. O que me diz que está aparentemente tudo certo.

    5 - Sem gerar um token, levo o hash obtido para meu backend novamente na chamada de criação do boleto, momento esse que obtenho "[53091] - sender hash invalid."

    Tentei sem bem pragmático aqui no passo a passo, seguindo o que deu da documentação, mas pra mim não está claro o porque do senderHash recebido não ser válido na requisição do boleto. 

    Pode me dar uma luz?

  • Flávio Sena

    Tiago,

    A URL do arquivo directpayment.js está para produção. Por isso o senderHash gerado não funciona.

    Altera a URL de:

    https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js

    Para:

    https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js

    Desta forma você terá o arquivo do ambiente de sanbox.

  • Tiago Gouvêa

    Que vergonha.. conferi mil vezes e errei logo nisso. Não sei como não percebi.

    Trocando a URL deu certo. 

    Grato pela ajuda Flávio!

  • Flávio Sena

    Relaxa, acontece. As vezes é muita letra e número na tela que alguns detalhes acaba passando batido.

  • Tiago Gouvêa

    Adicionalmente, percebi hoje que a resposta da Sophia não está correta. Para uso no sandbox um único senderHash pode ser usado inúmeras vezes.

  • Felipe Olimpio

    Oi Tiago, 

    Você consegue utilizar no Sandbox o mesmo senderHash, mas este não é o processo recomendado. Uma vez que o Sandbox é um ambiente apenas de testes ele não passa por nenhum tipo de validação de risco de transações.

    Porém, vale lembrar que o senderHash é um código obrigatório do Checkout que contem informações importantes do seu comprador para nossa analise de risco. Logo o procedimento correto para uma integração 100% funcional é efetuar a chamada do senderHash de acordo com o que foi orientado aqui e em nossa documentação, tudo bem?