Pular para o conteúdo principal

Checkout via Lightbox

Passo a passo para a integração com o Lightbox na API Efí


Utilizando Lightbox​

A integração com o Lightbox da Efí lhe permite exibir o formulário de coleta das informações de pagamento sobreposta à sua página de checkout. Por exemplo, quando o cliente adiciona os produtos no carrinho e fecha o pedido, apenas esmaecemos o fundo do seu site e o comprador visualiza uma nova janela modal para preenchimento dos dados de pagamento.

Apesar de ser um facilitador, o Lightbox requer que a integração no backend seja realizada normalmente.


Adicionando o Lightbox em sua página​

Primeiramente, será necessário adicionar um script em sua página que disponibiliza as funções necessárias à construção e funcionamento do Lightbox.

Após a inserção do script, as seguintes funções ficarão disponíveis:

  • ready()
  • lightbox()
  • show()

Inicialização do Lightbox​

ParâmetrosTipoDescrição
callback*FunctionFunção de inicialização que possibilita a chamada das demais funções.
Parâmetro(s) de callback
object\*, Objeto que recebe as instâncias das outras funções.

Métodos de pagamentos disponíveis​

ParâmetrosTipoDescrição
available_payment_formsArrayArray com a(s) forma(s) de pagamento que o Lightbox contemplará.
As opções disponíveis são:
- banking_billet (boleto bancário);
- credit_card (cartão de crédito);
- pix (pix)

Exibição do Lightbox​

ParâmetrosTipoDescrição
dataObjectObjeto com as informações essências para a construção do Lightbox. Os atributos são:
- items: Array com os items que serão adquiridos pelo cliente. Cada instância deste array será um objeto que deverá ter, obrigatoriamente, name e value (valor inteiro, ex.: R$ 123,00 = 12300). As instâncias também poderão ter amount, cujo valor padrão é 1.
- actionForm: URL do backend para onde serão enviadas as informações coletadas do cliente.
- shippingCosts: Valor do frete, em inteiro. (R$ 50,00 = 5000)
- customer: Boolean que indica se deverá solicitar os dados do cliente (true) ou não (false). O valor padrão é true
- shippingAddress: Boolean que indica se deverá solicitar os dados de endereço de entrega (true) ou não (false). O valor padrão é true.

Realizando a integração​

O Lightbox funciona como uma tela de pagamento para seu site ou aplicação. Quando o comprador preencher os campos, escolher a forma de pagamento e finalizar no Lightbox, um POST será enviado para a URL do back-end informada no parâmetro actionForm, contendo os dados para a emissão da cobrança.

Recebendo em seu back-end as informações de pagamento vindos do Lightbox, deverá ser implementada a integração com a API da Efí e realizar a requisição para registro da transação, podendo ser utilizada uma de nossas SDKs disponíveis. Sendo necessário o integrador desenvolver também a solução de retorno das notificações, utilizando da funcionalidade de callback para boleto e cartão, e o webhook para Pix.


Exemplo​

Tendo o script com Identificador de conta adicionado, ele irá preparar a pagina para a execução do Lightbox, sendo necessário a função ready((obj) => {}) para inicialização.
Para ser aberto o modal do Lightbox através do click em um botão, este botão deverá conter o atributo obrigatório rel="gn_lightbox" que irá executar a função show(data).

  <!DOCTYPE html>
<head>
<script type='text/javascript'>
var identificadorConta = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
var s = document.createElement('script');
s.type = 'text/javascript';
var v = parseInt(Math.random() * 1000000);
s.src = 'https://cobrancas.api.efipay.com.br/v1/cdn/lightbox/' + identificadorConta + '/' + v;
s.async = false;
s.id = identificadorConta;
if (!document.getElementById(identificadorConta)) {
document.getElementsByTagName('head')[0].appendChild(s);
};
$gn = {
validForm: true,
processed: false,
done: {},
ready: function (fn) {
$gn.done = fn;
}
};
</script>

<script>
$gn.ready(function(obj){

var payment_forms = ["credit_card", "banking_billet","pix"];
obj.lightbox(payment_forms);

obj.jq('#button_lightbox').click(function(evt) {

var data = {
items: [
{
name: 'Item 1', // nome do item, produto ou serviço
value: 12000 // valor (12000 = R$ 120,00) (Obs: É possível a criação de itens com valores negativos. Porém, o valor total da fatura deve ser superior ao valor mínimo para geração de transações.)
},
{
name: 'Item 2', // nome do item, produto ou serviço
value: 4000, // valor (4000 = R$ 40,00)
amount: 1 // quantidade
}
],
shippingCosts: 3560,
actionForm: 'http://your_domain/your_backend_url'
};

obj.show(data);

});

});
</script>
</head>

<body>
<button rel="gn_lightbox" id='button_lightbox'>
Abrir Lightbox
</button>
</body>
</html>

Com estas implementações, o Lightbox já poderá ser aberto em sua página, porém ainda será necessário realizar a integração no backend para que ele tenha um funcionamento correto.


Loja de demonstração​

Neste exemplo utilizamos como dependência a SDK de PHP, que é responsável por realizar as requisições na a API Efí .

Mas o nosso Lightbox, lhe permite integrar sua aplicação também com as SDKs Efí em outras linguagens disponíveis.