Skip to content

efipay/js-payment-token-efi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Script payment_token cartão de crédito | Efí

Este módulo JavaScript permite a criptografia dos dados do cartão diretamente no navegador do cliente, gerando o payment_token, identificando a bandeira do cartão e obtendo informações de parcelamento.

Com essa biblioteca é possível implementar uma solução segura e eficiente para manipulação de dados de cartão de crédito em seus projetos. Além disso, a criptografia dos dados diretamente no navegador do cliente aumenta a segurança da transação e protege as informações do cartão contra interceptações maliciosas.

Ir para:


Demonstração

Para ilustrar a utilização deste módulo em um contexto prático, você pode conferir um exemplo no seguinte link: Clique aqui.


Instalação

Abaixo, fornecemos algumas opções de instalação da biblioteca para atender a projetos web que utilizam JavaScript puro ou tecnologias como o Node.js. A seguir, apresentamos mais detalhes.

Web

Realize o download da biblioca localizada em /dist/payment-token-efi.min.js, ou importação através do link do CDN.

  • Importação local

     <script src="./dist/payment-token-efi.min"></script>
  • Importação por CDN

     <script src="https://cdn.jsdelivr.net/gh/efipay/js-payment-token-efi/dist/payment-token-efi.min.js"></script>

Node

Nesse cenário, você tem duas opções para instalar a biblioteca.

  • Importação local

    Fazer o download do arquivo /distNode/payment-token-efi.js e adicioná-lo localmente em seu projeto.

     const EfiJs = require('./distNode/payment-token-efi');

    Depois instalar a seguinte biblioteca como dependência para a virtualização do DOM.

     npm install jsdom --save
     // ou
     yarn add jsdom
  • Importação por NPM

    A segunda opção é utilizar o gerenciador de pacotes NPM e instalar a biblioteca com o seguinte comando:

     npm i payment-token-efi	
     // ou
     yarn add payment-token-efi	

    Após a instalação da biblioteca, basta importá-la em seu projeto.

     const EfiJs = require('payment-token-efi');

Utilização

Este script oferece três funções para manipulação de dados de cartão de crédito. A primeira função permite identificar a bandeira do cartão a partir do seu número. A segunda função busca informações de parcelamento de acordo com as configurações de recebimento em sua conta. Por fim, a terceira função gera o token de pagamento (payment_token) e a máscara do cartão (card_mask) com base nos dados do cartão.

Para utilizar esse script, é necessário passar o código Identificador de Conta (payee_code) como parâmetro para gerar o payment_token dos dados do cartão de crédito. Você pode obter essa informação em sua conta digital, no menu API > Introdução > Identificador de Conta. Veja onde encontrá-la. Certifique-se de ter essa informação disponível ao utilizar as funções do script.


  • Identificar a bandeira

    • Dados de entrada:

      Parâmetro/Método Descrição Tipo Obrigatório
      setCardNumber Número do cartão de crédito string Sim
      debugger Depurador de código boolean Não
    • Exemplo:

       try {
       	EfiJs.CreditCard
       		.setCardNumber('4485785674290087')
       		.verifyCardBrand()
       		.then(brand => {
       			console.log('Bandeira: ', brand);
       			if (brand !== 'undefined') {
       				// Exemplo: executar a função para gerar o payment_token com a bandeira identificada
       			}
       		}).catch(err => {
       			console.log('Código: ', err.code);
       			console.log('Nome: ', err.error);
       			console.log('Mensagem: ', err.error_description);
       		});
       } catch (error) {
       	console.log('Código: ', error.code);
       	console.log('Nome: ', error.error);
       	console.log('Mensagem: ', error.error_description);
       }
    • Dados de saída:

      Parâmetro Descrição Tipo
      brand Brandeira do cartão. "undefined", "unsupported", "visa", "mastercard", "amex", "elo", "hipercard" string

  • Buscar as informações de parcelamento

    • Dados de entrada:

      Parâmetro/Método Descrição Tipo Obrigatório
      setAccount Identificador de conta string Sim
      setEnvironment Ambiente. "production" ou "sandbox" string Sim
      setBrand Bandeira do cartão "visa", "mastercard", "amex", "elo", "hipercard" string Sim
      setTotal Valor total Integer Sim
      debugger Depurador de código boolean Não
    • Exemplo:

       try {
       	EfiJs.CreditCard
       		.setAccount('Identificador_de_conta_aqui')
       		.setEnvironment('production') // 'production' or 'sandbox'
       		.setBrand('visa')
       		.setTotal(28990)
       		.getInstallments()
       		.then(installments => {
       			console.log('Parcelas', installments);
       		}).catch(err => {
       			console.log('Código: ', err.code);
       			console.log('Nome: ', err.error);
       			console.log('Mensagem: ', err.error_description);
       		});
       } catch (error) {
       	console.log('Código: ', error.code);
       	console.log('Nome: ', error.error);
       	console.log('Mensagem: ', error.error_description);
       }
    • Dados de saída:

      Parâmetro Descrição Tipo
      installments Array com as parcelas. {"rate": 0,"name": "brand","installments": [{"installment": 1,"has_interest": false,"value": 500,"currency": "5,00","interest_percentage": 0}]} object

  • Gerar o payment_token e card_mask

    • Dados de entrada:

      Parâmetro/Método Descrição Tipo Obrigatório
      setAccount Identificador de conta string Sim
      setEnvironment Ambiente. "production" ou "sandbox" string Sim
      setCreditCardData Dados do cartão de crédito object Sim
      - brand "visa", "mastercard", "amex", "elo", "hipercard" string Sim
      - number string Sim
      - cvv string Sim
      - expirationMonth 'MM' string Sim
      - expirationYear 'YYYY' string Sim
      - reuse boolean Não
      debugger Depurador de código boolean Não
    • Exemplo:

       try {
       	EfiJs.CreditCard
       		.setAccount('Identificador_de_conta_aqui')
       		.setEnvironment('production') // 'production' or 'sandbox'
       		.setCreditCardData({
       			brand: 'visa',
       			number: '4485785674290087',
       			cvv: '123',
       			expirationMonth: '05',
       			expirationYear: '2029',
       			reuse: false
       		})
       		.getPaymentToken()
       		.then(data => {
       			const payment_token = data.payment_token;
       			const card_mask = data.card_mask;
       			console.log('payment_token', payment_token);
       			console.log('card_mask', card_mask);
       		}).catch(err => {
       			console.log('Código: ', err.code);
       			console.log('Nome: ', err.error);
       			console.log('Mensagem: ', err.error_description);
       		});
       } catch (error) {
       	console.log('Código: ', error.code);
       	console.log('Nome: ', error.error);
       	console.log('Mensagem: ', error.error_description);
       }
    • Dados de saída:

      Parâmetro Descrição Tipo
      payment_token Token de pagamento que representa o cartão utilizado string
      card_mask Máscara do cartão utilizado string
  • Ativar debbuger

    O debugger pode ser ativado para depurar e encontrar possível falhas.

     EfiJs.CreditCard.debugger(true);
  • Dados de saída em caso de falha

    Em caso de erro, será retornado no try/catch o objeto com os parâmetros descritos abaixo.

    Parâmetro Descrição Tipo
    code Código de erro para identificação. string
    error Nome do erro. string
    error_description Mensagem detalhando o erro ocorrido. string


Criação da cobrança

Após a obtenção do payment_token será possível emitir a cobrança de cartão de crétito. Acesse nossa documentação técnica para mais detalhes.


Documentação Adicional

Acesse nossa documentação técnica para ver todas as informações da geração do payment_token e mais detalhes das APIs.

Se você ainda não tem uma conta digital da Efí, abra a sua agora!


Comunidade e suporte

Conecte-se a milhares de desenvolvedores, participe de discussões, tire dúvidas e integre suas operações às APIs Efí (API Pix, API Boletos e muito mais) com a ajuda da maior comunidade de integradores do Brasil. Faça parte da comunidade Efí.


Licença

MIT

About

Biblioteca Javascript que permite a criptografia dos dados do cartão do cartão a partir do browser do cliente para gerar o payment_token e identificar a bandeira do cartão.

Resources

License

Stars

Watchers

Forks

Packages

No packages published