Para a realização de uma cobrança via cartão de crédito, é necessário enviar card hash ou card token.

Sendo assim, abaixo explicamos quando utilizar o card hash ou card token:

Card Hash: Para cada nova cobrança realizada em sua aplicação, é necessário gerar a hash, com os dados do cartão, seguindo o procedimento Gerar Card Hash;

Card Token: Nos casos em que sua aplicação utilize as funções de compra com um clique e/ou cobrança recorrente, será necessário utilizar o card_token. Com isso, após a realização da primeira compra em sua aplicação, você deverá gerar o card_token utilizando os dados do cartão e pagador. Desta forma, as próximas cobranças serão realizadas utilizando o card_token, não sendo necessário inserir os dados do cartão novamente.

Para as cobranças com o card_token, existe a necessidade do payerInfo.taxid (documento do pagador) e este deve ser idêntico ao que foi enviado no ato da geração do card token.

Para receber o card_token na primeira cobrança efetuada com o cartão, será necessário que o parâmetro saveCard seja enviado como true

Gerar Card Hash

Para gerar o card hash, deve-se enviar para a Click2Pay os dados do cartão no qual retornaremos a hash para ser utilizada no envio da requisição de cobrança.

O card hash, deve ser gerado utilizando nossa biblioteca, via javascript. Junto aos dados do cartão é necessário enviar a public_key que disponibilizamos.

Modo de testes Sandbox:

https://apisandbox.click2pay.com.br/c2p/integrations/public/cardc2p.js

Modo Produção:

https://api.click2pay.com.br/c2p/integrations/public/cardc2p.js

🚧

ATENÇÃO

  • Nossa biblioteca de criptografia e todo o processo de geração da hash, obrigatoriamente devem ser implementados no FRONT-END
  • A hash que devolvemos tem uma duração limitada de 1 minuto ou 1 utilização, o que ocorrer primeiro.
const publicKey = '9AA99A9A-AAAA-999A-A999-999A9999A99A';

let card = new CardHash(publicKey);

let cardData = {
    number: '9999 9999 9999 9999',
    expires: '10/2035',
    cvv: '123',
    holder: 'Nome do portador do cartão'
}

card.getCardHash(cardData, function (hash) {    
 		//get hash
  	console.log(hash);
}, function (err) {    
   console.log(err );
});

Funções Auxiliares

Juntamente com a função de gerar Card Hash disponibilizamos funções que irão auxiliar nas aplicações de modo geral.

const publicKey = '9AA99A9A-AAAA-999A-A999-999A9999A99A';

let card = new CardHash(publicKey);

let cardData = {
    number: '9999 9999 9999 9999',
    expires: '10/2035',
    cvv: '123',
    holder: 'Nome do portador do cartão'
}

//Verifica se os dados são válidos para realizar a requisição, retorna true e no caso de erro executa uma função;
let isvalid = card.isValidInfo(cardData,function(error){
    console.log(error);
});

//Valida a data de expiração do cartão;
isvalid = card.isValidExpires(cardData.expires);

//Verifica a validade do número do cartão;
isvalid = card.isValidNumber(cardData.number);

//Obtém a bandeira do cartão ou false, caso não encontre;
let brand = card.getBrand(cardData.number);

Os seguintes números de cartão de crédito podem ser usados para simular transações em ambiente de teste (sandbox), para pagamentos bem-sucedidos:

NúmeroCVVValidadeBandeira
453900337072549712301/2030Visa
535606632027189312301/2030Master
3765 902450 6169812301/2030Amex

Além disso, esses são os números "mágicos" de cartões que gerarão respostas específicas, úteis para testar diferentes cenários:

NúmeroRetorno
6011457819940087A transação será recusada com um código "card_declined".
4710426743216178A transação será recusada com um código "service_request_timeout".