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);