payment-token-efi v2.1.0
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
- Instalação - Web - Node
- Utilização
- Criação da cobrança
- Documentação Adicional
- Comunidade e suporte
- Licença
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
```javascript <script src="./dist/payment-token-efi.min"></script> ```
Importação por CDN
```javascript <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 <a href='https://raw.githubusercontent.com/efipay/js-payment-token-efi/main/distNode/payment-token-efi.js' target ='_blank'>download do arquivo</a> `/distNode/payment-token-efi.js` e adicioná-lo localmente em seu projeto. ```js const EfiJs = require('./distNode/payment-token-efi'); ``` Depois instalar a seguinte biblioteca como dependência para a virtualização do DOM. ```cmd npm install jsdom --save // ou yarn add jsdom ```
Importação por NPM
A segunda opção é utilizar o [gerenciador de pacotes NPM](https://www.npmjs.com/package/payment-token-efi) e instalar a biblioteca com o seguinte comando: ```cmd npm i payment-token-efi // ou yarn add payment-token-efi ``` Após a instalação da biblioteca, basta importá-la em seu projeto. ```js 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:
```js 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:
```js 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:** ```js 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. ```js 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](LICENSE)