O iugu.js facilita a manipulação de dados sensíveis de cartão de crédito, permitindo efetuar transações seguras diretamente pelo client-side (ou seja, sem enviar dados sensíveis para o seu servidor).

📘

Para aplicações web

O uso do iugu.js é recomendado para aplicações web. Para aplicações móveis, que não têm JavaScript no client-side, utilize a nossa API para gerar tokens de pagamentos.

946

Incluindo o iugu.js

<script type="text/javascript" src="https://js.iugu.com/v2"></script>

Configurando seu AccountID

A primeira ação a ser tomada para utilizar o iugu.js é configura-lo com seu AccountID. Seu AccountID pode ser obtido acessando AQUI. Este é o número que se encontra após o caracter #.

Para configurar seu AccountID, utilize a seguinte linha de código javascript.

Iugu.setAccountID("COLOCAR SEU ACCOUNT ID AQUI");

Habilitando o modo de testes

Você pode habilitar o modo de testes realizando a seguinte chamada após a configuração do AccountID.

Iugu.setTestMode(true);

Entradas de Texto Inteligentes - Formatter.js

A versão 2 do Iugu.js detecta automaticamente se você possuí o Formatter.js e tenta melhorar as entradas de dados de cartão. Se você utiliza uma aplicação com algum framework de WebApp (Backbone/Ember/etc), é necessário chamar o Iugu.setup() para ativar estas melhorias de usabilidade a cada renderização de views. Você pode saber mais sobre o Formatter.js no GitHub.

Iugu.setup();

Criando um Token de Pagamento (Para Cartão de Crédito)

O Token é um código que representa de forma segura os dados sensíveis do cartão de crédito.

Iugu.createPaymentToken(this, function(response) {
	if (response.errors) {
		alert("Erro salvando cartão");
	} else {
		alert("Token criado:" + response.id);
	}	
});

O primeiro argumento pode ser tanto um formulário (no caso do exemplo, pois esse código estava dentro do submit do formulário) quanto um objeto CreditCard.

Os campos do formulário devem ter o atributo data-iugu para cada campo abaixo:

  • number => Número do Cartão de Crédito
  • verification_value => CVV
  • expiration => Data de vencimento no formato MM/AAAA ou MM/AA
  • first_name => Primeiro Nome
  • last_name => Sobrenome
  • full_name => Nome Completo (Pode optar por esse em vez de enviar o nome separado)

Criando um objeto CreditCard

cc = Iugu.CreditCard("4111111111111111", 
                     "12", "2017", "Nome", 
                     "Sobrenome", "123");

Sendo seus parâmetros, respectivamente:

  • Número do Cartão de Crédito
  • Mês de Vencimento
  • Ano de Vencimento
  • Primeiro Nome
  • Sobrenome
  • CVV

O objeto CreditCard tem a função valid() que valida o cartão de crédito e retorna um bool (true ou false).

Funções Utilitárias

validateCreditCardNumber

Valida o número do cartão conforme o algoritmo de Luhn.

Iugu.utils.validateCreditCardNumber("4111111111111111"); // Retorna true
Iugu.utils.validateCreditCardNumber("3213"); // Retorna false

validateCVV

Valida o número de verificação de acordo com a bandeira.

As bandeiras suportadas são "visa", "mastercard", "amex", "diners" e "elo".

Iugu.utils.validateCVV("123", "visa"); // Retorna true
Iugu.utils.validateCVV("1234", "amex"); // Retorna true
Iugu.utils.validateCVV("3213", "mastercard"); // Retorna false

validateExpiration

Valida a data de vencimento com o mês e ano.

Assumindo a data de hoje como sendo em Dezembro de 2013, temos os seguintes exemplos:

Iugu.utils.validateExpiration(12, 2018); // Retorna true
Iugu.utils.validateExpiration(11, 2016); // Retorna false
Iugu.utils.validateExpiration(11, 2019); // Retorna true

validateExpirationString

Valida a data de vencimento com uma string no formato DD/AAAA ou DD/AA.

Assumindo a data de hoje como sendo em Dezembro de 2013, temos os seguintes exemplos:

Iugu.utils.validateExpirationString("12/2018"); // Retorna true
Iugu.utils.validateExpirationString("11/2016"); // Retorna false
Iugu.utils.validateExpirationString("11/19"); // Retorna true

getBrandByCreditCardNumber

Retorna a bandeira a partir do número do cartão de crédito.

Iugu.utils.getBrandByCreditCardNumber("4111111111111111"); // Retorna "visa"
Iugu.utils.getBrandByCreditCardNumber("5555555555554444"); // Retorna "mastercard"
Iugu.utils.getBrandByCreditCardNumber("123321"); // Retorna false

Exemplo

497

ReactJS

Caso você precise carregar o Iugu.js na biblioteca ReactJS. É possível importar via CDN e capturar a biblioteca pelo navegador.

//Importe o iugu.js pela tag de script dentro do index.html //Typescript const newWindow = window as any; const Iugu = newWindow.Iugu; //Javascript const newWindow = window; const Iugu = newWindow.Iugu;

Ao capturar a biblioteca pela window, todos os métodos podem ser utilizados.