2.1.0 • Published 10 months ago

payment-token-efi v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

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

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

2.1.0

10 months ago

2.0.2

11 months ago

2.0.1

11 months ago

2.0.0

11 months ago

1.1.3

11 months ago