Blog Aulas Épicas Maykon Silveira



Tudo que você precisa saber sobre Html 5 - Maykon Silveira

10
  • HD
  • 14+

Tudo que você precisa saber sobre Html 5 - Maykon Silveira

 

O que é HTML?

 

  • HTML significa Hyper Text Markup Language
  • HTML é a linguagem de marcação padrão para a criação de páginas da web
  • HTML descreve a estrutura de uma página da web
  • HTML consiste em uma série de elementos
  • Os elementos HTML informam ao navegador como exibir o conteúdo
  • Os elementos HTML identificam partes de conteúdo como "isto é um título", "isto é um parágrafo", "isto é um link", etc.

 

HTML é a linguagem de marcação padrão para páginas da web.

Com HTML, você pode criar seu próprio site.

HTML é fácil de aprender - você vai se divertir!

 

Aprendizagem fácil com HTML "Experimente você mesmo"

 

O HTML É UMA LINGUAGEM DE PROGRAMAÇÃO? 

 Não!, ele não tem lógica como as linguagens de programação que utiliza if e else, true e false. 

 

Com nosso editor "Experimente você mesmo", você pode editar o código HTML e visualizar o resultado:

 

Exemplo de um código html5 básico:

 

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>Título </h1>
<p>parágrafo </p>

</body>
</html>
 

Títulos No HTML5

 
 
<h1>Este é o título 1</h1>
<h2>Este é o título 2</h2>
<h3>Este é o título 3</h3>
<h4>Este é o título 4</h4>
<h5>Este é o título 5</h5>
<h6>Este é o título 6</h6>

 

 

 

Exemplo de HTML parágrafo:

<!DOCTYPE html>
<html>
<body>

<p>Este é um parágrafo.</p>
<p>Este é um parágrafo.</p>

</body>
</html>

 

Exemplo de HTML link:

<!DOCTYPE html>
<html>
<body>

<h2>LINKS HTML</h2>
<p>Os links HTML são definidos com a tag a:</p>

<a href="https://www.maykonsilveira.com.br">Clique Aqui</a>

</body>
</html>

 

Exemplo de HTML Imagens:

<!DOCTYPE html>
<html>
<body>

<h2>HTML imagens</h2>
<p>As imagens HTML são definidas com a tag img::</p>

<img src="maykonsilveira.jpg" alt="EAD maykonsilveira.com.br" width="70" height="70">

</body>
</html>

 

Exemplo de HTML Buttons - Botões:

<!DOCTYPE html>
<html>
<body>

<h2>HTML Buttons</h2>
<p>HTML buttons tags:</p>

<button>Clique Aqui</button>

</body>
</html>

 

Exemplo de HTML Listas:

<!DOCTYPE html>
<html>
<body>

<h2>Listas no HTML5</h2>

<ul>
<li>curso PHP 8</li>
<li>Curso Sistema de Cobranças</li>
<li>Curso NodeJs</li>
</ul>

<h2>Outros Cursos</h2>

<ol>
<li>Wordpress</li>
<li>Elementor</li>
<li>HTML / CSS</li>
</ol>

</body>
</html>

 

Exemplo de HTML Tabela:

<table>
  <tr>
    <th>Empresa</th>
    <th>Fone</th>
    <th>Páis</th>
  </tr>
  <tr>
    <td>EAD Maykon Silveira</td>
    <td>(41)0000-0000</td>
    <td>Brasil</td>
  </tr>
  
</table>
 

Exemplo de HTML Iframes:

<iframe src="https://maykonsilveira.com.br" title="Cursos online gratuitos"></iframe>

 

Exemplo de Meta Design Responsivo HTML:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

 

 

Elementos de código de computador HTML:

<code>
x = 5;
y = 6;
z = x + y;
</code>

 

 

Exemplo de Favicon HTML:

 <link rel="icon" type="image/x-icon" href="/images/favicon.ico">

 

Elementos de formatação HTML

Os elementos de formatação foram projetados para exibir tipos especiais de texto:

  • <b> - Texto em negrito
  • <strong> - texto importante
  • <i> - texto em itálico
  • <em> - Texto enfatizado
  • <mark> - texto marcado
  • <small> - Texto menor
  • <del> - texto excluído
  • <ins> - texto inserido
  • <sub> - Texto subscrito
  • <sup> - Texto sobrescrito

 

Elementos de nível de bloco

Um elemento de nível de bloco sempre começa em uma nova linha.

Um elemento de nível de bloco sempre ocupa toda a largura disponível (estende-se para a esquerda e direita, tanto quanto pode).

Um elemento de nível de bloco tem uma margem superior e uma inferior, enquanto um elemento embutido não.

O elemento <div> é um elemento de nível de bloco.

 

Exemplo

<div>Seja bem vindo a EAD MaykonSilveira.com.br</div>
 

Aqui estão os elementos de nível de bloco em HTML:

<address>
<article>
<aside>
<blockquote>
<canvas>
<dd>
<div>
<dl>
<dt>
<fieldset>
<figcaption>
<figure>
<footer>
<form>
<h1> ao <h6>
<header>
<hr>
<li>
<main>
<nav>
<noscript>
<ol>
<p>
<pre>
<section>
<table>
<tfoot>
<ul>
<video>

 

Elementos Inline HTML

Um elemento embutido não começa em uma nova linha.

Um elemento embutido ocupa apenas a largura necessária.

Este é um elemento <span> dentro de um parágrafo.

 <a>
<abbr>
<acronym>
<b>
<bdo>
<big>
<br>
<button>
<cite>
<code>
<dfn>
<em>
<i>
<img>
<input>
<kbd>
<label>
<map>
<object>
<output>
<q>
<samp>
<script>
<select>
<small>
<span>
<strong>
<sub>
<sup>
<textarea>
<time>
<tt>
<var>

 

 Trabalhando com Formulário - HTML Forms:

aqui estão alguns exemplos:

Modelo Descrição
<input type = "text"> Exibe um campo de entrada de texto de linha única
<input type = "radio"> Exibe um botão de opção (para selecionar uma das muitas opções)
<input type = "checkbox"> Exibe uma caixa de seleção (para selecionar zero ou mais de muitas opções)
<input type = "submit"> Exibe um botão de envio (para enviar o formulário)
<input type = "button"> Exibe um botão clicável

 

Exemplo

Um formulário com campos de entrada para texto:

<form>
  <label for="nome">Nome:</label><br>
  <input type="text" id="fname" name="fname"><br>
  <label for="lname">Sobrenome:</label><br>
  <input type="text" id="lname" name="lname">
</form>
 

Exemplo

Um formulário com botões de opção:

<p>Escolha uma opção:</p>

<form>
  <input type="radio" id="html" name="fav_language" value="HTML">
  <label for="html">HTML</label><br>
  <input type="radio" id="css" name="fav_language" value="CSS">
  <label for="css">CSS</label><br>
  <input type="radio" id="javascript" name="fav_language" value="JavaScript">
  <label for="javascript">JavaScript</label>
</form>
 
 

Exemplo

Um formulário com caixas de seleção:

<form>
  <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
  <label for="vehicle1">Bicicleta</label><br>
  <input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
  <label for="vehicle2">Carro</label><br>
  <input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
  <label for="vehicle3">Barco</label>
</form>
 

Exemplo

Um formulário com um botão de envio:

<form action="/action_page.php">
  <label for="fname">Nome:</label><br>
  <input type="text" id="fname" name="fname" value="John"><br>
  <label for="lname">Fone:</label><br>
  <input type="text" id="lname" name="lname" value="Doe"><br><br>
  <input type="submit" value="Enviar">
</form>
 
 

HTML Video:

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
Seu navegador não suporta esta tag, diz Maykon Silveira
</video>

Como funciona Vídeos:

controlsatributo adiciona controles de vídeo, como reprodução, pausa e volume.

É uma boa ideia sempre incluir os atributos widthheight. Se a altura e a largura não forem definidas, a página pode piscar enquanto o vídeo carrega.

<source>elemento permite que você especifique arquivos de vídeo alternativos que o navegador pode escolher. O navegador usará o primeiro formato reconhecido.

O texto entre as tags <video></video>só será exibido em navegadores que não suportam o <video>elemento.

 

Observação: os navegadores Chromium não permitem a reprodução automática na maioria dos casos. No entanto, a reprodução automática sem som é sempre permitida.

Adicione muteddepois autoplaypara permitir que seu vídeo comece a ser reproduzido automaticamente (mas sem som):

Exemplo

<video width="320" height="240" autoplay muted>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
Seu navegador não suporta esta tag, diz Maykon Silveira
</video>
 

O elemento HTML <audio>

Para reproduzir um arquivo de áudio em HTML, use o <audio>elemento:

Exemplo

<audio controls>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
Seu navegador não suporta esta tag, diz Maykon Silveira
</audio>
 

Áudio HTML - Como funciona

controlsatributo adiciona controles de áudio, como reprodução, pausa e volume.

<source>elemento permite que você especifique arquivos de áudio alternativos que o navegador pode escolher. O navegador usará o primeiro formato reconhecido.

O texto entre as tags <audio></audio>só será exibido em navegadores que não suportam o <audio>elemento.


HTML <audio> Reprodução automática

Para iniciar um arquivo de áudio automaticamente, use o autoplayatributo:

Exemplo

<audio controls autoplay>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
Seu navegador não suporta esta tag, diz Maykon Silveira
</audio>
 

Observação: os navegadores Chromium não permitem a reprodução automática na maioria dos casos. No entanto, a reprodução automática sem som é sempre permitida.

Adicione muteddepois autoplaypara permitir que seu arquivo de áudio comece a tocar automaticamente (mas sem som):

Exemplo

<audio controls autoplay muted>
  <source src="horse.ogg" type="audio/ogg">
  <source src="horse.mp3" type="audio/mpeg">
Seu navegador não suporta esta tag, diz Maykon Silveira
</audio>
 

Id de vídeo do YouTube

O YouTube exibirá um id (como tgbNymZ7vqY), quando você salva (ou reproduz) um vídeo.

Você pode usar este id e referir-se ao seu vídeo no código HTML.


Reproduzindo um vídeo do YouTube em HTML

Para reproduzir seu vídeo em uma página da web, faça o seguinte:

  • Envie o vídeo para o YouTube
  • Anote o ID do vídeo
  • Defina um <iframe>elemento em sua página da web
  • Deixe o srcatributo apontar para o URL do vídeo
  • Use os atributos widthheightpara especificar a dimensão do jogador
  • Adicione quaisquer outros parâmetros ao URL (veja abaixo)

Exemplo

<iframe width="420" height="315"
src="https://www.youtube.com/embed/SNQwBlHSKAQ"
>

</iframe>
 
 

Tag HTML do <artigo>

Exemplo

Três artigos com conteúdo independente e autocontido:

<article>
<h2>Google Chrome</h2>
<p>Google Chrome is a web browser developed by Google, released in 2008. Chrome is the world's most popular web browser today!</p>
</article>

<article>
<h2>Mozilla Firefox</h2>
<p>Mozilla Firefox is an open-source web browser developed by Mozilla. Firefox has been the second most popular web browser since January, 2018.</p>
</article>

<article>
<h2>Microsoft Edge</h2>
<p>Microsoft Edge is a web browser developed by Microsoft, released in 2015. Microsoft Edge replaced Internet Explorer.</p>
</article>
 

Viu que Legal pessoal, recomendo os seguintes editores, Visual Studio Code e Sublime Text ambos são gratuitos.

 

Salve com a extensão .html e  faça seus testes. 

 

Atenciosamente Maykon Silveira 

 
 

Criando link de pagamento na API Gerencianet - Maykon Silveira

10
  • HD
  • 14+

Criando link de pagamento

 

Passo a passo para gerar uma cobrança de link de pagamento na API Gerencianet


Saiba como criar um link para uma tela de pagamento da Gerencianet para seus clientes efetuarem os pagamentos. Para criar, é bem simples e requer apenas dois passos:

  1. Primeiramente, crie a transação, informando o item/produto/serviço, valor, quantidade, etc;

  2. Agora, para criar o link de pagamento, informe o charge_id da transação criada anteriormente.

O restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.

 Bolix

 

Caso você tenha ativado o Bolix em sua conta Gerencianet, as cobranças geradas pelo link de pagamento já vão vir com o pix no boleto.
Mais detalhes sobre o Bolix e como ativá-lo aqui

 


 

1. Crie a transação

 

Primeiramente, precisamos gerar a transação (também chamada de "cobrança"). É neste momento que será informado o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.

Após criá-la, será retornado o charge_id, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.

Assim que essa transação é criada, ela recebe o status new, que significa que a cobrança foi gerada e está aguardando definição da forma de pagamento. Essa cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento.

Para gerar uma transação, você deve enviar uma requisição POST para a rota /v1/charge.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

PHP·
 
<?php
 
require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK
 
use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
 
$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];
 
$item_1 = [
    'name' => 'Item 1', // nome do item, produto ou serviço
    'amount' => 1, // quantidade
    'value' => 1000 // valor (1000 = R$ 10,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.)
];
 
$item_2 = [
    'name' => 'Item 2', // nome do item, produto ou serviço
    'amount' => 2, // quantidade
    'value' => 2000 // valor (2000 = R$ 20,00)
];
 
$items =  [
    $item_1,
    $item_2
];

// Exemplo para receber notificações da alteração do status da transação.
// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']
// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes

// Como enviar seu $body com o $metadata
// $body  =  [
//    'items' => $items,
//    'metadata' => $metadata
// ];

$body  =  [
    'items' => $items
];

try {
    $api = new Gerencianet($options);
    $charge = $api->createCharge([], $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Charge"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para criar uma transação:

 

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

* valor obrigatório

Agora que a transação já foi criada e você já possui o charge_id, é preciso associá-lo para obter o link de pagamento.

 

 


 

 

2. Criando um link de pagamento

Para criar um link de pagamento, você precisa ter gerado a transação, ou seja, que você já tenha o identificador charge_id da cobrança, pois será necessário informá-lo.

Em seguida, basta enviar uma requisição POST para a rota /v1/charge/:id/link para gerar um link de pagamento, onde o :id corresponde ao charge_id da transação criada.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

<?php

require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];

// $charge_id refere-se ao ID da transação gerada anteriormente
$params = [
  'id' => $charge_id
];

$body = [
  'billet_discount' => 5000, // desconto, em reais, caso o pagador escolha boleto (5000 equivale a R$ 50,00)
  'card_discount' => 3000, // desconto, em reais, caso o pagador escolha cartão (3000 equivale a R$ 30,00)
  'message' => '', // mensagem para o pagador com até 80 caracteres
  'expire_at' => '2018-12-20', // data de vencimento da tela de pagamento e do próprio boleto
  'request_delivery_address' => false, // solicitar endereço de entrega do comprador?
  'payment_method' => 'all' // formas de pagamento disponíveis
];

try {
  $api = new Gerencianet($options);
  $response = $api->chargeLink($params, $body);
  print_r($response);
} catch (GerencianetException $e) {
  print_r($e->code);
  print_r($e->error);
  print_r($e->errorDescription);
} catch (Exception $e) {
  print_r($e->getMessage());
}

 

 IMPORTANTE

Para se criar um "link de pagamento" (chargeLink), uma "transação" (createCharge) previamente criada deverá ser informada. Logo, se houver uma tentativa de pagamento e, por alguma razão, não houver sucesso na confirmação do pagamento (ex: cartão recusado, cliente deseja pagar por outra forma, etc), uma nova transação deverá ser gerada e associada a um novo link de pagamento, pois a transação anterior estará com status de waiting ou unpaid, o que significa que devido a tentativa de pagamento, ela já foi atrelada a um método de pagamento.

 

 

Atributo Descrição Obrigatório Tipo

billet_discount

Define um desconto, em reais, caso o pagador escolha boleto bancário como forma de pagamento (informar valor inteiro, em reais).
5000 equivale a R$ 50,00

Não

Integer

card_discount

Define um desconto, em reais, caso o pagador escolha cartão de crédito como forma de pagamento (informar valor Inteiro).
5000 equivale a R$ 50,00

Não

Integer

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

message

Define uma mensagem para o pagador. A mensagem aparece na tela de pagamento, nos e-mails relacionados à cobrança e no boleto, caso esta seja a forma de pagamento escolhida.
Mínimo de 3 e máximo de 80 caracteres.

Não

String

expire_at

Define a data de vencimento da tela de pagamento e do próprio boleto, caso esta seja a forma de pagamento escolhida.
Formato: YYYY-MM-DD

Sim

String

request_delivery_address

Define se a tela de pagamento deve solicitar que o pagador informe um endereço de entrega. Há dois possíveis valores:

  • true (equivale a "sim") ou;
  • false (equivale a "não").

Sim

Boolean

payment_method

Define as formas de pagamento que devem ficar disponíveis na tela para seu cliente escolher, podendo ser:

  • banking_billet (boleto bancário);
  • credit_card (cartão de crédito) ou;
  • all (permitir pagamento via boleto e cartão).

Sim

Object

 

Ao consumir o endpoint /charge/:id/link, ou através do Playground, a cobrança ganha o status link. Desta forma, o integrador consegue distinguir cobranças comuns que ainda não tiveram forma de pagamento definida (status new) de cobranças que foram associadas a um link de pagamento (status link).

O integrador só precisa redirecionar o pagador para o link retornado na tag payment_url e todo o resto será realizado na tela de pagamento da Gerencianet.

A seguir, através da aba "Dados de Entrada", um JSON simples que pode ser utilizado para criar o link de pagamento. Além disso, é possível observar a saída prevista e o schema de validação com todas as tags (obrigatórias e opcionais) disponíveis para este método. Lembrando que também é preciso informar o parâmetro de entrada charge_id da transação criada:

{
  "message": "Escreva aqui, se quiser, uma mensagem ao seu cliente, limite de 80 caracteres",
  "payment_method": "all",
  "expire_at": "2016-12-20",
  "request_delivery_address": false,
  "billet_discount": 5000,
  "card_discount": 3000
}

Esse JSON, presente na aba "Dados de Entrada", define as seguintes informações ao criar o link de pagamento:

  • message: define uma mensagem para o pagador. A mensagem aparece na tela de pagamento, nos e-mails relacionados à cobrança e no boleto, caso esta seja a forma de pagamento escolhida (máximo de 80 caracteres);

  • payment_method: define as formas de pagamento que devem ficar disponíveis na tela (banking_billetcredit_card ou all);

  • expire_at: define a data de vencimento da tela de pagamento e do próprio boleto, caso esta seja a forma de pagamento escolhida;

  • request_delivery_address: define se a tela de pagamento deve solicitar que o pagador informe um endereço de entrega (true ou false);

  • billet_discount: define um desconto, em centavos, caso o pagador escolha boleto bancário como forma de pagamento (informar valor Inteiro);

  • card_discount: define um desconto, em centavos, caso o pagador escolha cartão de crédito como forma de pagamento (informar valor Inteiro).

 

 

 Relação de todos os possíveis status de uma transação

 

Todas as transações possuem status, que representa a "situação" dessa transação. Portanto, é importante conhecer os possíveis status na API para fornecer as devidas tratativas em seu sistema.

Confira neste link todos os detalhes dos possíveis status das transações.

 

 Callbacks (notificações) das transações da API para seu sistema

 

As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando uma cobrança for paga, por exemplo.

Confira neste link todos os detalhes sobre como implementar a sua URL de notificação.

 

 

b) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

 

"id": "/ChargeLink"
"billet_discount"
"card_discount"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"
"message"
"expire_at"
"request_delivery_address"
"payment_method"
"banking_billet"
"credit_card"
"all"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

c) Personalizando sua tela de pagamento:

 

É possível definir uma cor e um logo para sua tela. Para isso, logue em sua conta Gerencianet e acesse o menu Cobranças > Configurações na aba Comunicação.

Mesmo que prefira utilizar sua própria tela, as informações definidas aqui serão utilizadas também nos e-mails disparados pela API. Então recomendamos que faça a personalização de qualquer forma.

 

d) Testando em ambiente de testes (Playground):

 

Para criar um link de pagamento, primeiro é necessário criar uma cobrança na API, consumindo o endpoint POST /v1/charge. Este endpoint retorna, dentre outras informações, um identificador para a cobrança. O status inicial de uma cobrança é new:

{   
    "items":  [
        {
            "name": "Produto exemplo",
            "value": 1000,
            "amount": 1
         }
    ]
}

 

Logo abaixo, os dados de saída previstos de acordo com a entrada realizada acima:

{  
   "code":200,
   "data":{  
      "charge_id":121062,
      "status":"new",
      "total":1000,
      "custom_id":null,
      "created_at":"2016-10-31 10:43:57"
   }
}

 

Conhecendo o identificador da cobrança, basta consumir o endpoint POST /v1/charge/:id/link para gerar um link de pagamento.

 

 


 

 

3. Outros endpoints e métodos

 

Existem outros endpoints e métodos relacionados a link de pagamento que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:

Pagamento com cartão API Gerencianet Treinamento Completo - Maykon Silveira

10
  • HD
  • 14+

Pagamento com cartão

 

Passo a passo para gerar uma cobrança de cartão de crédito na API Gerencianet


Atualmente disponibilizamos dois procedimentos para a criação de uma transação do tipo cartão de crédito, na primeira delas o titulo é criado em um passo único, assim fora convencionado como One Step. A segunda opção de criação da transação se da em dois passos, sendo assim convencionada como Two Steps. Ambos os fluxos estão detalhados a seguir:

  1. Criando a transação em One Step (Um passo).

  2. Criando a transação em Two Steps (Dois passos).

1. Criação de transação por cartão de crédito em One Step (Um passo)

 

 Importante

Para que a criação de transações via One Step ocorra normalmente é necessário atualizar sua SDK. Todos os arquivos necessários para tal estão disponíveis através de nosso repositório e em nossa documentação.

No caso de transações com cartão de crédito, será realizada uma etapa anterior a criação onde ocorre a transmissão (via JavaScript, no browser), de forma segura, dos dados do cartão e retornando um payment_token, e na segunda etapa seu backend envia o restante das informações da transação e o payment_token obtido na primeira etapa.

 

É importante frisar que não é possível efetuar pagamento com cartão de crédito sem obter o payment_token da transação, por isso, é imprescindível a realização dos procedimentos do item 1.1 deste documento (obter o payment_token), e só depois passar para o item 1.2 (que é de fato o pagamento com cartão).

 

1.1. Obtenção do payment_token

Inicialmente, vamos realizar a primeira etapa, que é a obtenção do payment_token. Para tal, você necessitará de um código JavaScript específico de sua conta Gerencianet. Para gerá-lo, siga os passos :

  • Efetue login em sua conta Gerencianet e acesse API (Lateral a esquerda)
  • Copie seu Identificador de Conta (veja onde)
  • Cole no campo abaixo e clique no botão Gerar
 
 

É importante frisar que é obtido via JavaScript, no browser, de forma segura, os dados do cartão e retorna um payment_token, que é a representação dos dados enviados.

 

Lembre-se que, após informar seu identificador de conta, serão gerados 2 (dois) códigos JavaScript distintos.

Copie e utilize o código referente ao ambiente desejado, atentando-se às diferenças do ambiente de "Homologação" e "Produção".

Para aplicações web, você deve copiar o script, específico da sua conta, e utilizar a nossa biblioteca Javascript, conforme o snippet abaixo. Se você possui um app mobile, confira como proceder acessando nossa página no GitHub para Android e/ou iOS.

Adicionalmente, esclarecemos que uma conta Gerencianet não possui um payment_token - ele é diferente e criado para cada cobrança gerada por cartão de crédito. Ele representa os dados do cartão do pagador e é obtido pela função getPaymentToken. Além disso, cabe frisar que o payment_token pode ser utilizado uma única vez, portanto, não é possível utilizá-lo para cobrar de forma recorrente.

 

 

a) Obtendo um "payment_token" ( getPaymentToken )

 

$gn.ready(function (checkout) {

  checkout.getPaymentToken(
    {
      brand: 'visa', // bandeira do cartão
      number: '4012001038443335', // número do cartão
      cvv: '123', // código de segurança
      expiration_month: '05', // mês de vencimento
      expiration_year: '2021' // ano de vencimento
    },
    function (error, response) {
      if (error) {
        // Trata o erro ocorrido
        console.error(error);
      } else {
        // Trata a resposta
        console.log(response);
      }
    }
  );

});

 

 

b) Obtendo informações sobre parcelamentos ( getInstallments )

$gn.ready(function (checkout) {

  checkout.getInstallments(
    50000, // valor total da cobrança
    'visa', // bandeira do cartão
    function (error, response) {
      if (error) {
        // Trata o erro ocorrido
        console.log(error);
      } else {
        // Trata a respostae
        console.log(response);
      }
    }
  );

});

 

 

c) Atributos relacionados ao envio de dados do cartão:

$gn.ready ( callback )

Parâmetro Descrição Tipo

callback

Função de inicialização que possibilita a chamada das funções getPaymentToken e getInstallments.

Parâmetro(s) de callback

 

object // Objeto que recebe as instâncias das outras funções.

 

Function

 

getPaymentToken ( card_data, callback )

Parâmetro Descrição  

card_data

Objeto que contém os dados do cartão.

As propriedades desse objeto são:

 

brand // Bandeira do cartão

number // Número do cartão sem formatação

cvv // Código de segurança do cartão

expiration_month // Mês de expiração do cartão no formato "MM"

expiration_year // Ano de expiração do cartão no formato "YYYY"

 

Object

callback

Função que recebe a resposta da Gerencianet.

Parâmetro(s) de callback:

 

error // Se não foi possível gerar o payment_token, os erros serão retornados neste parâmetro.

 

 

response // Recebe os dados que representam o cartão de crédito: payment_token e card_mask

 

Function

 

getInstallments ( total, brand, callback )

Parâmetro Descrição Tipo

total

Valor total da cobrança, incluindo fretes, em centavos.

 

Por exemplo: R$ 230,90 equivale a 23090.

 

Integer

brand

Bandeira do cartão que deseja-se obter os valores de parcelas.

Possíveis valores:

 

visa // Bandeira Visa

 

 

mastercard // Bandeira MasterCard

 

 

amex // Bandeira AmericanExpress

 

 

elo // Bandeira Elo

 

 

hipercard // Bandeira Hipercard

 

String

callback

Função que recebe a resposta da Gerencianet.

Parâmetro(s) de callback:

 

error // Se não foi possível obter dados sobre o pagamento, os erros serão retornados neste parâmetro.

 

 

response // Recebe os dados relacionados ao tipo de pagamento consultado.

 

Function

 

 

1.2. Pagando com cartão

 

Agora que o payment_token já foi obtido através do código Javascript, vamos prosseguir com o pagamento com cartão de crédito.

Nesta etapa, seu backend envia o restante das informações da transação e o payment_token obtido na primeira etapa.

Ao pagar uma transação por cartão de crédito, o status é alterado de new para waiting. Isso significa que a transação está associada a uma forma de pagamento e que está aguardando a confirmação do pagamento.

Assim que o pagamento for confirmado, a transação terá o status alterado de waiting para paid. Mas, se por alguma razão não for possível confirmar o pagamento, o status será alterado para unpaid.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

<?php

require __DIR__.'/../../autoload.php'; //Caminho da SDK

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];
$paymentToken = '83d52dbd590d9ebc991938c711ddd31f65df89a5'; // payment_token obtido no procedimento através do Javascript único por conta Gerencianet

$item_1 = [
   'name' => 'Item 1', // nome do item, produto ou serviço
   'amount' => 1, // quantidade
   'value' => 3000 // valor (1000 = R$ 10,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.)
];
$items = [
   $item_1
];
$metadata = array('notification_url'=>'https://SuaUrl/16rpx6y1');
$customer = [
   'name' => 'Gorbadoc Oldbuck', // nome do cliente
   'cpf' => '04267484171', // cpf do cliente
   'phone_number' => '5144916523', // telefone do cliente
   'email' => '[email protected]', // endereço de email do cliente
   'birth' => '1977-01-15' // data de nascimento do cliente
];
$billingAddress = [
  'street' => 'Av JK',
  'number' => 909,
  'neighborhood' => 'Bauxita',
  'zipcode' => '35400000',
  'city' => 'Ouro Preto',
  'state' => 'MG'
];
$discount = [
   'type' => 'currency',
   'value' => 599
];

$credit_card = [
  'customer' => $customer,
  'installments' => 1, // número de parcelas em que o pagamento deve ser dividido
  'discount' =>$discount,
  'billing_address' => $billingAddress,
  'payment_token' => $paymentToken,
  'message' => 'teste\nteste\nteste\nteste'
];
$payment = [
   'credit_card' => $credit_card // forma de pagamento (credit_card = cartão)
];
$body = [
   'items' => $items,
   'metadata' =>$metadata,
   'payment' => $payment
];
try {
       $api = new Gerencianet($options);
       $pay_charge = $api->oneStep([],$body);
       echo '<pre>';
       print_r($pay_charge);
       echo '<pre>';
} catch (GerencianetException $e) {
   print_r($e->code);
     print_r($e->error);
     print_r($e->errorDescription);
 } catch (Exception $e) {
     print_r($e->getMessage());
 }

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

"items"
    "name"
    "value"
    "amount"
    "marketplace"
        "payee_code"
        "percentage"
"shippings"
    "name"
    "value"
    "payee_code"
"metadata"
    "custom_id"
    "notification_url"
"payment"
    "credit_card"
        "customer"
            "name"
            "cpf"
            "email"
            "phone_number"
            "birth"
            "address"
                "street"
                "number"
                "neighborhood"
                "zipcode"
                "city"
                "complement"
                "state"
            "juridical_person"
                "corporate_name"
                "cnpj"
        "installments"
        "discount"
            "type"
                "percentage",
                "currency"
            "value"
        "billing_address"
            "street"
            "number"
            "neighborhood"
            "zipcode"
            "city"
            "complement"
            "state"
        "payment_token"
        "message"

 

 

b) Atributos que podem ser utilizados para criar uma transação:

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

credit_card

Objeto contendo as informações necessárias para o pagamento via cartão de crédito, como por exemplo, o número de parcelas e os dados do cliente.

Sim

Objeto Credit_Card

 

Objeto Credit_Card

Atributo Descrição Obrigatório Tipo

customer

Dados pessoais do pagador.

Atributos de customer

 

name* // nome (String)

 

 

cpf* // CPF do cliente (sem pontos, vírgulas ou hífen) (String)

 

 

email* // Endereço de email válido do cliente (String)

 

 

phone_number* // Telefone válido do cliente, sem caracteres especiais (String)

 

 

birth* // Data de Nascimento do cliente (data válida em formato YYYY-MM-DD) (String)

 

 

address // Endereço de Entrega (Object) (mais informações)

 

 

juridical_person // Dados de pessoa jurídica (Object) (mais informações)

 

Sim

Object

installments

Número de parcelas em que o pagamento deve ser dividido.
Mínimo 1 e máximo 12. Integer.

Não

Integer

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

billing_address

Endereço de cobrança (mais informações)

Atributos de billing_address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Sim

Object

payment_token

Token único de pagamento obtido na primeira etapa da geração da transação.

Sim

String

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Até 4 linhas contendo 100 caracteres em cada linha. String.

O operador \n é utilizado para efetuar a quebra de linha.

Não

String

* valor obrigatório

 

 

2. Criação de transação por cartão de crédito em Two Steps (Dois passos)

Nesta opção é necessário que o body da requisição contenha todos os atributos mínimos obrigatórios para a emissão do titulo.
Abaixo temos os exemplos de implementação utilizando as SDK's disponíveis:

2.1. Crie a transação, informando o item/produto/serviço, valor, quantidade, etc;

2.2. Associe à forma de pagamento via cartão, informando o charge_id da transação criada e os dados do cliente;

2.3. Obtenção do payment_token (via JavaScript, único por transação);

2.4. Pagando com cartão.

Por se tratar de pagamento via cartão e envolver dados sensíveis, como dados do cartão de crédito, os procedimentos descritos nos itens 3.1 e 3.2, ou seja, obtenção do payment_token e pagando com cartão, respectivamente, são necessários.

O restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.

 


 

 

2.1. Criar transação

Primeiramente, precisamos gerar a transação (também chamada de "cobrança"). É neste momento que será informado o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.

Após criá-la, será retornado o charge_id, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.

Assim que essa transação é criada, ela recebe o status new, que significa que a cobrança foi gerada e está aguardando definição da forma de pagamento. Essa cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento.

Para gerar uma transação, você deve enviar uma requisição POST para a rota /v1/charge.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

<?php
 
require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK
 
use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
 
$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];
 
$item_1 = [
    'name' => 'Item 1', // nome do item, produto ou serviço
    'amount' => 1, // quantidade
    'value' => 1000 // valor (1000 = R$ 10,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.)
];
 
$item_2 = [
    'name' => 'Item 2', // nome do item, produto ou serviço
    'amount' => 2, // quantidade
    'value' => 2000 // valor (2000 = R$ 20,00)
];
 
$items =  [
    $item_1,
    $item_2
];

// Exemplo para receber notificações da alteração do status da transação.
// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']
// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes

// Como enviar seu $body com o $metadata
// $body  =  [
//    'items' => $items,
//    'metadata' => $metadata
// ];

$body  =  [
    'items' => $items
];

try {
    $api = new Gerencianet($options);
    $charge = $api->createCharge([], $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Charge"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para criar uma transação:

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

* valor obrigatório

 

 


 

 

2.2. Associe à forma de pagamento via cartão

Com a transação criada, vamos associá-la à forma de pagamento desejada, que neste caso, será cartão de crédito. Para tal, deverá ser informado a charge_id obtido no consumo anterior em que foi gerada a transação.

No caso de transações com cartão de crédito, será realizado em duas etapas, sendo a primeira a transmissão (via JavaScript, no browser), de forma segura, os dados do cartão e retornando um payment_token, e na segunda etapa seu backend envia o restante das informações da transação e o payment_token obtido na primeira etapa.

 IMPORTANTE - SOBRE O PAYMENT_TOKEN

 

É importante frisar que não é possível efetuar pagamento com cartão de crédito sem obter o payment_token da transação, por isso, é imprescindível a realização dos procedimentos do item 2.1 deste documento (obter o payment_token), e só depois passar para o item 2.2 (que é de fato o pagamento com cartão).

Para associar à forma de pagamento, você deve enviar uma requisição POST para a rota /v1/charge/:id/pay, onde :id é o charge_id da transação desejada.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

 

2.3. Obtenção do payment_token

Inicialmente, vamos realizar a primeira etapa, que é a obtenção do payment_token. Para tal, você necessitará de um código JavaScript específico de sua conta Gerencianet. Para gerá-lo, siga os passos :

  • Efetue login em sua conta Gerencianet e acesse API (Lateral a esquerda)
  • Copie seu Identificador de Conta (veja onde)
  • Cole no campo abaixo e clique no botão Gerar
 
 

É importante frisar que é obtido via JavaScript, no browser, de forma segura, os dados do cartão e retorna um payment_token, que é a representação dos dados enviados.

 IMPORTANTE

Lembre-se que, após informar seu identificador de conta, serão gerados 2 (dois) códigos JavaScript distintos.

Copie e utilize o código referente ao ambiente desejado, atentando-se às diferenças do ambiente de "Homologação" e "Produção".

Para aplicações web, você deve copiar o script acima, específico da sua conta, e utilizar a nossa biblioteca Javascript, conforme o snippet abaixo. Se você possui um app mobile, confira como proceder acessando nossa página no GitHub para Android e/ou iOS.

Adicionalmente, esclarecemos que uma conta Gerencianet não possui um payment_token - ele é diferente e criado para cada cobrança gerada por cartão de crédito. Ele representa os dados do cartão do pagador e é obtido pela função getPaymentToken. Além disso, cabe frisar que o payment_token pode ser utilizado uma única vez, portanto, não é possível utilizá-lo para cobrar de forma recorrente.

 

 

a) Obtendo um "payment_token" ( getPaymentToken )

$gn.ready(function(checkout) {
 
  var callback = function(error, response) {
    if(error) {
      // Trata o erro ocorrido
      console.error(error);
    } else {
      // Trata a resposta
      console.log(response);
    }
  };
 
  checkout.getPaymentToken({
    brand: 'visa', // bandeira do cartão
    number: '4012001038443335', // número do cartão
    cvv: '123', // código de segurança
    expiration_month: '05', // mês de vencimento
    expiration_year: '2021' // ano de vencimento
  }, callback);
 
});

 

 

b) Obtendo informações sobre parcelamentos ( getInstallments )

$gn.ready(function(checkout){
 
  checkout.getInstallments(50000,'visa', function(error, response){
    if(error) {
      // Trata o erro ocorrido
      console.log(error);
    } else {
      // Insere o parcelamento no site
    }
  });
 
});

 

 

c) Atributos relacionados ao envio de dados do cartão:

$gn.ready ( callback )

Parâmetro Descrição Tipo

callback

Função de inicialização que possibilita a chamada das funções getPaymentToken e getInstallments.

Parâmetro(s) de callback

 

object // Objeto que recebe as instâncias das outras funções.

 

Function

 

getPaymentToken ( card_data, callback )

Parâmetro Descrição Tipo

card_data

Objeto que contém os dados do cartão.

As propriedades desse objeto são:

 

brand // Bandeira do cartão

number // Número do cartão sem formatação

cvv // Código de segurança do cartão

expiration_month // Mês de expiração do cartão no formato "MM"

expiration_year // Ano de expiração do cartão no formato "YYYY"

 

Object

callback

Função que recebe a resposta da Gerencianet.

Parâmetro(s) de callback:

 

error // Se não foi possível gerar o payment_token, os erros serão retornados neste parâmetro.

 

 

response // Recebe os dados que representam o cartão de crédito: payment_token e card_mask

 

Function

 

getInstallments ( total, brand, callback )

Parâmetro Descrição Tipo

total

Valor total da cobrança, incluindo fretes, em centavos.

 

Por exemplo: R$ 230,90 equivale a 23090.

 

Integer

brand

Bandeira do cartão que deseja-se obter os valores de parcelas.

Possíveis valores:

 

visa // Bandeira Visa

 

 

mastercard // Bandeira MasterCard

 

 

amex // Bandeira AmericanExpress

 

 

elo // Bandeira Elo

 

 

hipercard // Bandeira Hipercard

 

String

callback

Função que recebe a resposta da Gerencianet.

Parâmetro(s) de callback:

 

error // Se não foi possível obter dados sobre o pagamento, os erros serão retornados neste parâmetro.

 

 

response // Recebe os dados relacionados ao tipo de pagamento consultado.

 

Function

 

 

2.4. Pagando com cartão

Agora que a transação já foi criada e o payment_token já foi obtido através do código Javascript da primeira etapa, vamos prosseguir com o pagamento com cartão de crédito.

Nesta etapa, seu backend envia o restante das informações da transação e o payment_token obtido na primeira etapa.

Ao pagar uma transação por cartão de crédito, o status é alterado de new para waiting. Isso significa que a transação está associada a uma forma de pagamento e que está aguardando a confirmação do pagamento.

Assim que o pagamento for confirmado, a transação terá o status alterado de waiting para paid. Mas, se por alguma razão não for possível confirmar o pagamento, o status será alterado para unpaid.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

<?php
 
require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK
 
use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
 
$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];

// $charge_id refere-se ao ID da transação gerada anteriormente
$params = [
  'id' => $charge_id
];
 
$paymentToken = '6426f3abd8688639c6772963669bbb8e0eb3c319'; // payment_token obtido na 1ª etapa (através do Javascript único por conta Gerencianet)
 
$customer = [
  'name' => 'Gorbadoc Oldbuck', // nome do cliente
  'cpf' => '94271564656' , // cpf do cliente
  'email' => '[email protected]' , // endereço de email do cliente
  'phone_number' => '5144916523' // telefone do cliente
  'birth' => '1990-05-20' // data de nascimento do cliente
];
 
$billingAddress = [
  'street' => 'Street 3',
  'number' => 10,
  'neighborhood' => 'Bauxita',
  'zipcode' => '35400000',
  'city' => 'Ouro Preto',
  'state' => 'MG',
];
 
$creditCard = [
  'installments' => 1, // número de parcelas em que o pagamento deve ser dividido
  'billing_address' => $billingAddress,
  'payment_token' => $paymentToken,
  'customer' => $customer
];
 
$body = [
  'payment' => $payment
];
 
$payment = [
  'credit_card' => $creditCard // forma de pagamento (credit_card = cartão)
];
 
try {
    $api = new Gerencianet($options);
    $charge = $api->payCharge($params, $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Pay",
"payment"
"credit_card"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"installments"
"discount"
"type"
"percentage",
"currency"
"value"
"billing_address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"payment_token"
"message"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos relacionados ao pagamento com cartão de crédito:

Parâmetros da url

Atributo Descrição Obrigatório Tipo

id

Identificador da transação (charge_id)

Sim

Objeto ID

 

Objeto ID

Atributo Descrição Obrigatório Tipo

payment

Tag raiz

Sim

Objeto Payment

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

credit_card

Objeto contendo as informações necessárias para o pagamento via cartão de crédito, como por exemplo, o número de parcelas e os dados do cliente.

Sim

Objeto Credit_Card

 

Objeto Credit_Card

Atributo Descrição Obrigatório Tipo

customer

Dados pessoais do pagador.

Atributos de customer

 

name* // nome (String)

 

 

cpf* // CPF do cliente (sem pontos, vírgulas ou hífen) (String)

 

 

email* // Endereço de email válido do cliente (String)

 

 

phone_number // Telefone válido do cliente, sem caracteres especiais (String)

 

 

birth* // Data de Nascimento do cliente (data válida em formato YYYY-MM-DD) (String)

 

 

address // Endereço de Entrega (Object) (mais informações)

 

 

juridical_person // Dados de pessoa jurídica (Object) (mais informações)

 

Sim

Object

installments

Número de parcelas em que o pagamento deve ser dividido.
Mínimo 1 e máximo 12. Integer.

Não

Integer

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

billing_address

Endereço de cobrança (mais informações)

Atributos de billing_address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Sim

Object

payment_token

Token único de pagamento obtido na primeira etapa da geração da transação.

Sim

String

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Até 4 linhas contendo 100 caracteres em cada linha. String.

O operador \n é utilizado para efetuar a quebra de linha.

Não

String

* valor obrigatório

 

 Pagamento realizado como Pessoa Jurídica (PJ)

 

O cliente associado à transação pode ser uma Pessoa Jurídica. Nesse caso, devem ser informados a Razão Social e o CNPJ da empresa pagadora dentro do atributo juridical_person.

Veja detalhes neste link sobre como gerar um pagamento cuja forma de pagamento seja "cartão de crédito" para um cliente que seja Pessoa Jurídica (PJ).

 Relação de todos os possíveis status de uma transação

 

Todas as transações possuem status, que representa a "situação" dessa transação. Portanto, é importante conhecer os possíveis status na API para fornecer as devidas tratativas em seu sistema.

Confira neste link todos os detalhes dos possíveis status das transações.

 Callbacks (notificações) das transações da API para seu sistema

 

As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando uma cobrança for paga, por exemplo.

Confira neste link todos os detalhes sobre como implementar a sua URL de notificação.

 

 


 

 

3. Outros endpoints

Existem outros endpoints e métodos relacionados a pagamento via cartão de crédito que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:

Gerar boleto bancário na API Gerencianet - Maykon Silveira

10
  • HD
  • 14+

Gerar boleto bancário

 

Passo a passo para gerar boleto bancário na API Gerencianet


Atualmente disponibilizamos dois procedimentos para a criação de uma transação do tipo Boleto bancário, na primeira delas o titulo é criado em um passo único, assim fora convencionado como One Step. A segunda opção de criação da transação se da em dois passos, sendo assim convencionada como Two Steps. A geração de um boleto não envolve transmissão de dados sensíveis como número de cartão de crédito. Por isso, basta consumir o respectivo endpoint de pagamento para gerar o boleto registrado. Ambos os fluxos estão detalhados a seguir:

  1. Criando a transação em One Step (Um passo).

  2. Criando a transação em Two Steps (Dois passos).

 

 

1. Criação de Boleto em One Step (Um passo)

Nesta opção é necessário que o body da requisição contenha todos os atributos mínimos obrigatórios para a emissão do titulo.
Abaixo temos os exemplos de implementação utilizando as SDK's disponíveis:

 Importante

Para que a criação de transações via One Step ocorra normalmente é necessário atualizar sua SDK. Todos os arquivos necessários para tal estão disponíveis através através de nosso repositório e em nossa documentação.

<?php
   require __DIR__ . '/../../vendor/autoload.php'; // caminho relacionado a SDK

   use Gerencianet\Exception\GerencianetException;
   use Gerencianet\Gerencianet;

   $clientId = 'informe_seu_client_id';// insira seu Client_Id, conforme o ambiente (Des ou Prod)
   $clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)

    $options = [
        'client_id' => $clientId,
        'client_secret' => $clientSecret,
        'sandbox' => true // altere conforme o ambiente (true = homologação e false = producao)
    ];
    
   $item_1 = [
       'name' => 'Item 1', // nome do item, produto ou serviço
       'amount' => 1, // quantidade
       'value' => 1000 // valor (1000 = R$ 10,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.)
   ];
   $items = [
       $item_1
   ];
   $metadata = array('notification_url'=>'sua_url_de_notificacao_.com.br'); //Url de notificações
   $customer = [
       'name' => 'Gorbadoc Oldbuck', // nome do cliente
       'cpf' => '94271564656', // cpf válido do cliente
       'phone_number' => '5144916523', // telefone do cliente
   ];
   $discount = [ // configuração de descontos
       'type' => 'currency', // tipo de desconto a ser aplicado
       'value' => 599 // valor de desconto 
   ];
   $configurations = [ // configurações de juros e mora
       'fine' => 200, // porcentagem de multa
       'interest' => 33 // porcentagem de juros
   ];
   $conditional_discount = [ // configurações de desconto condicional
       'type' => 'percentage', // seleção do tipo de desconto 
       'value' => 500, // porcentagem de desconto
       'until_date' => '2019-08-30' // data máxima para aplicação do desconto
   ];
   $bankingBillet = [
       'expire_at' => '2019-09-01', // data de vencimento do titulo
       'message' => 'teste\nteste\nteste\nteste', // mensagem a ser exibida no boleto
       'customer' => $customer,
       'discount' =>$discount,
       'conditional_discount' => $conditional_discount
   ];
   $payment = [
       'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = boleto)
   ];
   $body = [
       'items' => $items,
       'metadata' =>$metadata,
       'payment' => $payment
   ];
   try {
     $api = new Gerencianet($options);
     $pay_charge = $api->oneStep([],$body);
     echo '<pre>';
     print_r($pay_charge);
     echo '<pre>';
     
    } catch (GerencianetException $e) {
       print_r($e->code);
       print_r($e->error);
       print_r($e->errorDescription);
   } catch (Exception $e) {
       print_r($e->getMessage());
   }

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"OneStep": "/Charge/one-step"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"
"payment"
"banking_billet"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"expire_at"
"discount"
"type"
"percentage",
"currency"
"value"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"
"configurations"
"fine"
"interest"
"message"

 

 

b) Atributos que podem ser utilizados para criar um titulo:

 

 

Objeto items

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

banking_billet

Forma de pagamento através de "boleto bancário"

Sim

Objeto Banking_Billet

 

Objeto Banking_Billet

Atributo Descrição Obrigatório Tipo

name

Nome do cliente.
Mínimo de 1 caractere e máximo de 255.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

cpf

CPF válido do cliente (sem pontos, vírgulas ou hífen).
Tamanho: 11 caracteres.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

email

Email do cliente.
Máximo de 255 caracteres. Ex.: [email protected]

Não

String

phone_number

Telefone do cliente.
Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777

Não

String

birth

Data de nascimento do cliente.
Formato: YYYY-MM-DD

Não

String

address

Endereço do cliente.

Atributos de address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Não

Object

juridical_person

Dados de pessoa jurídica

Atributos de juridical_person

 


corporate_name* // Nome da razão social. Mínimo de 1 caractere e máximo de 255. String.

 

 


cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.

 

Não

Object

expire_at

Data de vencimento do boleto.
Formato: YYYY-MM-DD

Sim

String

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

configurations

Permite incluir no boleto multa e juros caso seja pago após o vencimento.

Atributos de configurations

 


fine, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200Mínimo de 0 e máximo de 1000. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine


 

 


interest, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar 33Mínimo de 0 e máximo de 330. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest


 

Não

Object

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Até 4 linhas contendo 100 caracteres em cada linha. String.

O operador \n é utilizado para efetuar a quebra de linha.

Não

String

  • valor obrigatório

 

2. Criação de Boleto em Two Steps (Dois passos)

  1. Crie a transação, informando o item/produto/serviço, valor, quantidade, etc;

  2. Associe à forma de pagamento via boleto, informando o charge_id da transação e os dados do cliente.

O restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.

 


 

 

2.1. Criar transação

Primeiramente, precisamos gerar a transação (também chamada de "cobrança"). É neste momento que será informado o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.

Após criá-la, será retornado o charge_id, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.

Assim que essa transação é criada, ela recebe o status new, que significa que a cobrança foi gerada e está aguardando definição da forma de pagamento. Essa cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento.

Para gerar uma transação, você deve enviar uma requisição POST para a rota /v1/charge.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

<?php
 
require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK
 
use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
 
$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];
 
$item_1 = [
    'name' => 'Item 1', // nome do item, produto ou serviço
    'amount' => 1, // quantidade
    'value' => 1000 // valor (1000 = R$ 10,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.)
];
 
$item_2 = [
    'name' => 'Item 2', // nome do item, produto ou serviço
    'amount' => 2, // quantidade
    'value' => 2000 // valor (2000 = R$ 20,00)
];
 
$items =  [
    $item_1,
    $item_2
];

// Exemplo para receber notificações da alteração do status da transação:
// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']
// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes

// Como enviar seu $body com o $metadata
// $body  =  [
//    'items' => $items,a
//    'metadata' => $metadata
// ];

$body  =  [
    'items' => $items
];

try {
    $api = new Gerencianet($options);
    $charge = $api->createCharge([], $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Charge"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para criar uma transação:

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

* valor obrigatório

 

 


 

 

2.2. Associar à forma de pagamento via boleto

 

Com a transação gerada com sucesso, agora vamos associar com a forma de pagamento desejada - neste caso, será banking_billet (boleto bancário). Para tal, deverá ser informado o charge_id obtido ao criar a transação.

Neste momento, ao definir boleto bancário como forma de pagamento da transação, seu status será alterado de new para waiting. Isso significa que a forma de pagamento foi selecionada e está aguardando a confirmação do pagamento.

Para associar à forma de pagamento, você deve enviar uma requisição POST para a rota /v1/charge/:id/pay, onde :id é o charge_id da transação desejada.

Caso queira, pode explorar e conhecer mais sobre este recurso usando nosso Playground.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

PHP·
 
<?php
 
require __DIR__.'/../../vendor/autoload.php'; // caminho relacionado a SDK
 
use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;
 
$clientId = 'informe_seu_client_id'; // insira seu Client_Id, conforme o ambiente (Des ou Prod)
$clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)
 
$options = [
  'client_id' => $clientId,
  'client_secret' => $clientSecret,
  'sandbox' => true // altere conforme o ambiente (true = Homologação e false = producao)
];
 
// $charge_id refere-se ao ID da transação gerada anteriormente
$params = [
  'id' => $charge_id
];
 
$customer = [
  'name' => 'Gorbadoc Oldbuck', // nome do cliente
  'cpf' => '94271564656' , // cpf válido do cliente
  'phone_number' => '5144916523' // telefone do cliente
];
 
$bankingBillet = [
  'expire_at' => '2018-12-12', // data de vencimento do boleto (formato: YYYY-MM-DD)
  'customer' => $customer
];
 
$payment = [
  'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = boleto)
];
 
$body = [
  'payment' => $payment
];
 
try {
    $api = new Gerencianet($options);
    $charge = $api->payCharge($params, $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Pay",
"payment"
"banking_billet"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"expire_at"
"discount"
"type"
"percentage",
"currency"
"value"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"
"configurations"
"fine"
"interest"
"message"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para gerar um boleto bancário:

 

Atributo Descrição Obrigatório Tipo

payment

Tag raiz

Sim

Objeto Payment

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

banking_billet

Forma de pagamento através de "boleto bancário"

Sim

Objeto Banking_Billet

 

Objeto Banking_Billet

Atributo Descrição Obrigatório Tipo

name

Nome do cliente.
Mínimo de 1 caractere e máximo de 255.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

cpf

CPF válido do cliente (sem pontos, vírgulas ou hífen).
Tamanho: 11 caracteres.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

email

Email do cliente.
Máximo de 255 caracteres. Ex.: [email protected]

Não

String

phone_number

Telefone do cliente.
Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777

Não

String

birth

Data de nascimento do cliente.
Formato: YYYY-MM-DD

Não

String

address

Endereço do cliente.

Atributos de address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Não

Object

juridical_person

Dados de pessoa jurídica

Atributos de juridical_person

 


corporate_name* // Nome da razão social. Mínimo de 1 caractere e máximo de 255. String.

 

 


cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.

 

Não

Object

expire_at

Data de vencimento do boleto.
Formato: YYYY-MM-DD

Sim

String

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

configurations

Permite incluir no boleto multa e juros caso seja pago após o vencimento.

Atributos de configurations

 


fine, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200Mínimo de 0 e máximo de 1000. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine


 

 


interest, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar 33Mínimo de 0 e máximo de 330. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest


 

Não

Object

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Até 4 linhas contendo 100 caracteres em cada linha. String.

O operador \n é utilizado para efetuar a quebra de linha.

Não

String

  • valor obrigatório

 

 Pagamento realizado como Pessoa Jurídica (PJ)

 

O cliente associado à transação pode ser uma Pessoa Jurídica. Nesse caso, devem ser informados a Razão Social e o CNPJ da empresa pagadora dentro do atributo juridical_person.

Veja detalhes neste link sobre como gerar um pagamento cuja forma de pagamento seja "boleto bancário" para um cliente que seja Pessoa Jurídica (PJ).

 

 Relação de todos os possíveis status de uma transação

Todas as transações possuem status, que representa a "situação" dessa transação. Portanto, é importante conhecer os possíveis status de uma transação na API para fornecer as devidas tratativas em seu sistema.

Confira neste link todos os detalhes dos possíveis status das transações.

 Callbacks (notificações) das transações da API para seu sistema

As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando um boleto for pago, por exemplo.

Confira neste link todos os detalhes sobre como implementar a sua URL de notificação.

 

 


 

 

3. Outros endpoints

Existem outros endpoints e métodos relacionados a pagamento via boleto bancário que estão disponíveis na API e podem ser explorados pelo integrador. Confira a relação completa:

Como Gerar Bolix API Gerencianet - Maykon Silveira

10
  • HD
  • 14+

Gerar Bolix

 

Passo a passo para gerar Bolix na API Gerencianet, o Bolix permite gerar cobranças com o pix no boleto, possibilitando mais de uma forma de pagamento aos clientes


O Bolix, pix no boleto, permite gerar transações do tipo boleto e carnê para seu cliente com o acréscimo do Pix como forma de pagamento.
O Bolix quando emitido na forma de boleto pode ser gerado via API em um passo, também conhecido como One Step ou em dois passos, o Two Steps.
Também é disponibilizado a emissão do Bolix como carnê, que consiste em um conjunto de transações (parcelas) geradas em lote e com forma de pagamento já definida com vencimento mensal.

Todos os fluxos e informações para emissões do Bolix tanto como boleto bancário quanto carnê estão detalhados a seguir:

  1. Criando Bolix com o método de pagamento boleto bancário, transação em One Step (Um passo).

  2. Criando Bolix com o método de pagamento boleto bancário, transação em Two Steps (Dois passos).

  3. Criando Bolix com o método de pagamento carnê.

 Ativação do Bolix

Para que você consiga emitir cobranças Bolix, boleto com pix, primeiramente deve-se ativar o Bolix em sua conta Gerencianet, siga estes passos:

1- Acesse sua Conta Digital na plataforma web.
2- Clique no menu Cobranças > Configurações > Boletos Bancários e Carnês.
3- Por fim, habilite a função “Bolix” como nesta imagem.

 SDK's

 

O restante desta página apresenta os procedimentos detalhados para criação do Bolix com os métodos de pagamento boleto bancário e carnê, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.

 

1. Criação do Bolix, boleto com pix, em One Step (Um passo)

Nesta opção é necessário que o body da requisição contenha todos os atributos mínimos obrigatórios para a emissão do titulo.
Abaixo temos os exemplos de implementação utilizando as SDK's disponíveis:

PHP·
Go·
 
<?php
   require __DIR__ . '/../../vendor/autoload.php'; // caminho relacionado a SDK

   use Gerencianet\Exception\GerencianetException;
   use Gerencianet\Gerencianet;

   $clientId = 'informe_seu_client_id';// insira seu Client_Id, conforme o ambiente (Des ou Prod)
   $clientSecret = 'informe_seu_client_secret'; // insira seu Client_Secret, conforme o ambiente (Des ou Prod)

    $options = [
        'client_id' => $clientId,
        'client_secret' => $clientSecret,
        'sandbox' => true // altere conforme o ambiente (true = homologação e false = producao)
    ];
    
   $item_1 = [
       'name' => 'Item 1', // nome do item, produto ou serviço
       'amount' => 1, // quantidade
       'value' => 1000 // valor (1000 = R$ 10,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.)
   ];
   $items = [
       $item_1
   ];
   $metadata = array('notification_url'=>'sua_url_de_notificacao_.com.br'); //Url de notificações onde vamos notificá-lo, independente se for pago pelo código de barras do boleto quanto pelo QR Code.
   $customer = [
       'name' => 'Gorbadoc Oldbuck', // nome do cliente
       'cpf' => '94271564656', // cpf válido do cliente
       'phone_number' => '5144916523', // telefone do cliente
   ];
   $discount = [ // configuração de descontos
       'type' => 'currency', // tipo de desconto a ser aplicado
       'value' => 599 // valor de desconto 
   ];
   $configurations = [ // configurações de juros e mora
       'fine' => 200, // porcentagem de multa
       'interest' => 33 // porcentagem de juros
   ];
   $conditional_discount = [ // configurações de desconto condicional
       'type' => 'percentage', // seleção do tipo de desconto 
       'value' => 500, // porcentagem de desconto
       'until_date' => '2019-08-30' // data máxima para aplicação do desconto
   ];
   $bankingBillet = [
       'expire_at' => '2022-09-01', // data de vencimento do titulo
       'message' => 'Pague pelo código de barras ou pelo QR Code', // mensagem a ser exibida no boleto
       'customer' => $customer,
       'discount' =>$discount,
       'conditional_discount' => $conditional_discount
   ];
   $payment = [
       'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = Bolix)
   ];
   $body = [
       'items' => $items,
       'metadata' =>$metadata,
       'payment' => $payment
   ];
   try {
     $api = new Gerencianet($options);
     $pay_charge = $api->oneStep([],$body);
     echo '<pre>';
     print_r($pay_charge);
     echo '<pre>';
     
    } catch (GerencianetException $e) {
       print_r($e->code);
       print_r($e->error);
       print_r($e->errorDescription);
   } catch (Exception $e) {
       print_r($e->getMessage());
   }

 

 

Dados de entrada e saída do Bolix em One Step:

{
  "items": [
    {
      "name": "Meu Produto",
      "value": 5990,
      "amount": 1
    }
  ],
  "payment": {
    "banking_billet": {
      "customer": {
        "name": "Gorbadoc Oldbuck",
        "cpf": "94271564656",
        "email": "[email protected]",
        "phone_number": "5144916523",
        "address": {
          "street": "Avenida Juscelino Kubitschek",
          "number": "909",
          "neighborhood": "Bauxita",
          "zipcode": "35400000",
          "city": "Ouro Preto",
          "complement": "",
          "state": "MG"
        }
      },
      "expire_at": "2022-12-15",
      "configurations": {
        "fine": 200,
        "interest": 33
      },
      "message": "Pague pelo código de barras ou pelo QR Code"
    }
  }
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"OneStep": "/Charge/one-step"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"
"payment"
"banking_billet"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"expire_at"
"discount"
"type"
"percentage",
"currency"
"value"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"
"configurations"
"fine"
"interest"
"message"

 

 

b) Atributos que podem ser utilizados para criar um título:

 

 

Objeto items

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

banking_billet

Forma de pagamento através de "boleto bancário"

Sim

Objeto Banking_Billet

 

Objeto Banking_Billet

Atributo Descrição Obrigatório Tipo

name

Nome do cliente.
Mínimo de 1 caractere e máximo de 255.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

cpf

CPF válido do cliente (sem pontos, vírgulas ou hífen).
Tamanho: 11 caracteres.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

email

Email do cliente.
Máximo de 255 caracteres. Ex.: [email protected]

Não

String

phone_number

Telefone do cliente.
Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777

Não

String

birth

Data de nascimento do cliente.
Formato: YYYY-MM-DD

Não

String

address

Endereço do cliente.

Atributos de address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Não

Object

juridical_person

Dados de pessoa jurídica

Atributos de juridical_person

 


corporate_name* // Nome da razão social. Mínimo de 1 caractere e máximo de 255. String.

 

 


cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.

 

Não

Object

expire_at

Data de vencimento do boleto.
Formato: YYYY-MM-DD

Sim

String

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

configurations

Permite incluir no boleto multa e juros caso seja pago após o vencimento.

Atributos de configurations

 


fine, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200Mínimo de 0 e máximo de 1000. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine


 

 


interest, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar 33Mínimo de 0 e máximo de 330. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest


 

Não

Object

  • valor obrigatório

2. Criação do Bolix, boleto com pix, em Two Steps (Dois passos)

  1. Crie a transação, informando o item/produto/serviço, valor, quantidade, etc;

  2. Associe à forma de pagamento via boleto, informando o charge_id da transação e os dados do cliente.

O restante desta página apresenta os procedimentos detalhados, mas você precisa instalar uma de nossas bibliotecas em seu servidor para executar os códigos de exemplo. Certifique-se de que a SDK da Gerencianet foi instalada.

 


 

 

2.1. Criar transação

Primeiramente, precisamos gerar a transação (também chamada de "cobrança"). É neste momento que será informado o nome do item/produto/serviço, valor da transação, quantidade, dentre outras informações possíveis.

Após criá-la, será retornado o charge_id, que é o identificador único da transação e que será utilizado para associar à forma de pagamento.

Assim que essa transação é criada, ela recebe o status new, que significa que a cobrança foi gerada e está aguardando definição da forma de pagamento. Essa cobrança somente terá seu status alterado quando o integrador definir sua forma de pagamento.

Para gerar uma transação, você deve enviar uma requisição POST para a rota /v1/charge.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

PHP·
Go·
 
<?php
 
require __DIR__ . '/../../vendor/autoload.php';

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$file = file_get_contents(__DIR__ . '/../config.json');
$options = json_decode($file, true);
unset($options['pix_cert']);
 
$item_1 = [
    'name' => 'Item 1', // nome do item, produto ou serviço
    'amount' => 1, // quantidade
    'value' => 1000 // valor (1000 = R$ 10,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.)
];
 
$item_2 = [
    'name' => 'Item 2', // nome do item, produto ou serviço
    'amount' => 2, // quantidade
    'value' => 2000 // valor (2000 = R$ 20,00)
];
 
$items =  [
    $item_1,
    $item_2
];

// Exemplo para receber notificações da alteração do status da transação:
// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']
// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes

// Como enviar seu $body com o $metadata
// $body  =  [
//    'items' => $items,a
//    'metadata' => $metadata
// ];

$body  =  [
    'items' => $items
];

try {
    $api = new Gerencianet($options);
    $charge = $api->createCharge([], $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

Dados de entrada e saída na criação da transação:

{
  "items": [
    {
      "name": "Meu Produto",
      "value": 8900,
      "amount": 1
    }
  ]
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Charge"
"items"
"name"
"value"
"amount"
"marketplace"
"payee_code"
"percentage"
"shippings"
"name"
"value"
"payee_code"
"metadata"
"custom_id"
"notification_url"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para criar uma transação:

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Array

shippings

Determina o(s) valor(es) de frete(s) de uma transação. Uma mesma transação pode possuir ilimitados valores de frete.

Atributos de shippings

 

name* // Rótulo do frete. Máximo de 255 caracteres. String.

 

 

value* // Valor do frete, em centavos (1990 equivale a R$19,90). Integer.

 

 

payeeCode, // código da conta Gerencianet que receberá o repasse do valor total do frete - refere-se ao "identificador da conta" Gerencianet (onde localizar meu identificador?(String)

 

Não

Array

metadata

Define dados específicos da transação.

Atributos de metadata

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

* valor obrigatório

 

 


 

 

2.2. Associar à forma de pagamento via boleto

Com a transação gerada com sucesso, agora vamos associar com a forma de pagamento banking_billet (boleto bancário) e assim gerar o Bolix. Para tal, deverá ser informado o charge_id obtido ao criar a transação.

Neste momento, ao definir boleto bancário como forma de pagamento da transação, seu status será alterado de new para waiting. Isso significa que a forma de pagamento foi selecionada e está aguardando a confirmação do pagamento.

Para associar à forma de pagamento, você deve enviar uma requisição POST para a rota /v1/charge/:id/pay, onde :id é o charge_id da transação desejada.

O boleto bancário que será gerado já vem com a forma de pagamento Pix inclusa.

O exemplo abaixo mostra como isto pode ser feito, utilizando as SDK's disponíveis:

PHP·
Go·
 
<?php
 
require __DIR__ . '/../../vendor/autoload.php';

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$file = file_get_contents(__DIR__ . '/../config.json');
$options = json_decode($file, true);
unset($options['pix_cert']);
 
// $charge_id refere-se ao ID da transação gerada anteriormente
$params = [
  'id' => $charge_id
];
 
$customer = [
  'name' => 'Gorbadoc Oldbuck', // nome do cliente
  'cpf' => '94271564656' , // cpf válido do cliente
  'phone_number' => '5144916523' // telefone do cliente
];
 
$bankingBillet = [
  'expire_at' => '2022-12-12', // data de vencimento do boleto (formato: YYYY-MM-DD)
  'customer' => $customer
];
 
$payment = [
  'banking_billet' => $bankingBillet // forma de pagamento (banking_billet = boleto)
];
 
$body = [
  'payment' => $payment
];
 
try {
    $api = new Gerencianet($options);
    $charge = $api->payCharge($params, $body);
 
    print_r($charge);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

 

Dados de entrada e saída na criação da transação:

{
  "payment": {
    "banking_billet": {
      "customer": {
        "name": "Gorbadoc Oldbuck",
        "cpf": "94271564656",
        "email": "[email protected]",
        "phone_number": "5144916523",
        "address": {
          "street": "Avenida Juscelino Kubitschek",
          "number": "909",
          "neighborhood": "Bauxita",
          "zipcode": "35400000",
          "city": "Ouro Preto",
          "complement": "",
          "state": "MG"
        }
      },
      "expire_at": "2022-12-30",
      "configurations": {
        "fine": 200,
        "interest": 33
      },
      "message": "Pague pelo código de barras ou pelo QR Code"
    }
  }
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Pay",
"payment"
"banking_billet"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"expire_at"
"discount"
"type"
"percentage",
"currency"
"value"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"
"configurations"
"fine"
"interest"
"message"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser utilizados para gerar um Bolix, pix no boleto bancário:

Atributo Descrição Obrigatório Tipo

payment

Tag raiz

Sim

Objeto Payment

 

Objeto Payment

Atributo Descrição Obrigatório Tipo

banking_billet

Forma de pagamento através de "boleto bancário"

Sim

Objeto Banking_Billet

 

Objeto Banking_Billet

Atributo Descrição Obrigatório Tipo

name

Nome do cliente.
Mínimo de 1 caractere e máximo de 255.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

cpf

CPF válido do cliente (sem pontos, vírgulas ou hífen).
Tamanho: 11 caracteres.

Sim

Obs: Para Pessoa Jurídica não serão obrigatórios o nome e CPF, apenas os demais dados do cliente.

String

email

Email do cliente.
Máximo de 255 caracteres. Ex.: [email protected]

Não

String

phone_number

Telefone do cliente.
Formato: sem pontos ou vírgulas, com DDD de 2 caracteres (9º dígito é opcional). Ex.: 11988887777

Não

String

birth

Data de nascimento do cliente.
Formato: YYYY-MM-DD

Não

String

address

Endereço do cliente.

Atributos de address

 

street* // nome da rua (Object)

 

 

number* // número (String/Integer)

 

 

neighborhood* // Bairro (String)

 

 

zipcode* // CEP (sem pontos ou hífen) (String)

 

 

city* // cidade (String)

 

 

complement // complemento (String/null)

 

 

state* // estado (2 caracteres) (Object)

 

Não

Object

juridical_person

Dados de pessoa jurídica

Atributos de juridical_person

 


corporate_name* // Nome da razão social. Mínimo de 1 caractere e máximo de 255. String.

 

 


cnpj* // CNPJ da empresa. Tamanho: 14 caracteres. String.

 

Não

Object

expire_at

Data de vencimento do boleto.
Formato: YYYY-MM-DD

Sim

String

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

configurations

Permite incluir no boleto multa e juros caso seja pago após o vencimento.

Atributos de configurations

 


fine, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200Mínimo de 0 e máximo de 1000. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine


 

 


interest, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,033%, você deve informar 33Mínimo de 0 e máximo de 330. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest


 

Não

Object

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Até 4 linhas contendo 100 caracteres em cada linha. String.

O operador \n é utilizado para efetuar a quebra de linha.

Não

String

  • valor obrigatório

 

3. Gerando um Bolix com o método de pagamento carnê

O carnê é um método de pagamento que gera um conjunto de transações (parcelas) com as mesmas informações de pagamento e do cliente em todas elas, as parcelas de um carnê vencem mensalmente, de acordo com a data definida pelo integrador. Para gerar um carnê, você precisa informar os seguintes dados:

  • Itens (ou serviço) oferecido;
  • Data de vencimento da 1ª parcela;
  • Número de parcelas (repetições).

A seguir, um código de exemplo de criação de um Bolix com o método de pagamento carnê utilizando as SDK's disponíveis. Note que já estamos definindo os itens, os dados do cliente, data de vencimento da primeira parcela do carnê e a quantidade de repetições (em meses):

PHP·
Go·
 
<?php

require __DIR__ . '/../../vendor/autoload.php';

use Gerencianet\Exception\GerencianetException;
use Gerencianet\Gerencianet;

$file = file_get_contents(__DIR__ . '/../config.json');
$options = json_decode($file, true);
unset($options['pix_cert']);

$item_1 = [
    'name' => 'Item 1', // nome do item, produto ou serviço
    'amount' => 1, // quantidade
    'value' => 1000 // valor (1000 = R$ 10,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.)
];
 
$item_2 = [
    'name' => 'Item 2', // nome do item, produto ou serviço
    'amount' => 2, // quantidade
    'value' => 2000 // valor (2000 = R$ 20,00)
];
 
$items =  [
    $item_1,
    $item_2
];
 
$customer = [
  'name' => 'Gorbadoc Oldbuck', // nome do cliente
  'cpf' => '94271564656' , // cpf do cliente
  'phone_number' => '5144916523' // telefone do cliente
];

// Exemplo para receber notificações da alteração do status do carne.
// $metadata = ['notification_url'=>'sua_url_de_notificacao_.com.br']
// Outros detalhes em: https://dev.gerencianet.com.br/docs/notificacoes

// Como enviar seu $body com o $metadata
// $body = [
// 'items' => $items,
// 'customer' => $customer,
// 'expire_at' => '2022-12-02',
// 'repeats' => 5,
// 'split_items' => false,
// 'metadata' => $metadata
// ];

$body = [
  'items' => $items,
  'customer' => $customer,
  'expire_at' => '2022-12-02', // data de vencimento da primeira parcela do carnê
  'repeats' => 5, // número de parcelas do carnê
  'split_items' => false // Define se os itens do carnê serão divididos entre as parcelas (true), ou se o valor de cada parcela será o valor total dos itens (false)
];

try {
    $api = new Gerencianet($options);
    $carnet = $api->createCarnet([], $body);
 
    print_r($carnet);
} catch (GerencianetException $e) {
    print_r($e->code);
    print_r($e->error);
    print_r($e->errorDescription);
} catch (Exception $e) {
    print_r($e->getMessage());
}

Dados de entrada e saída na criação do Bolix com o método de pagamento carnê:

{
  "items": [
    {
      "name": "Meu Produto",
      "value": 7500,
      "amount": 1
    }
  ],
  "customer": {
    "name": "Gorbadoc Oldbuck",
    "cpf": "94271564656",
    "phone_number": "5144916523"
  },
  "expire_at": "2022-12-20",
  "configurations": {
        "fine": 200,
        "interest": 33
      },
  "message": "Este carnê aceita o pagamento por QR Code Pix e por código de barras",
  "repeats": 3,
  "split_items": false
}

 

 

a) Estrutura hierárquica dos atributos do Schema que podem ser utilizados:

 

"id": "/Carnet"
"items"
"name"
"value"
"amount"
"customer"
"name"
"cpf"
"email"
"phone_number"
"birth"
"address"
"street"
"number"
"neighborhood"
"zipcode"
"city"
"complement"
"state"
"juridical_person"
"corporate_name"
"cnpj"
"expire_at"
"repeats"
"split_items"
"metadata"
"custom_id"
"notification_url"
"configurations"
"fine"
"interest"
"message"
"discount"
"type"
"percentage",
"currency"
"value"
"conditional_discount"
"type"
"percentage",
"currency"
"value"
"until_date"

 

Para verificar mais detalhes, acesse aqui e explore em nosso Playground.

 

 

b) Atributos que podem ser usados para criar um carnê:

Atributo Descrição Obrigatório Tipo

items

Item que está sendo vendido. Uma mesma transação pode possuir ilimitados itens.

Atributos de items

 

name* // Nome do item, produto ou serviço. Mínimo de 1 caractere e máximo de 255 caracteres (String).

 

 

value* // Valor, em centavos. Ex: R$ 10,00 = 1000. Integer.

 

 

amount // Quantidade. Integer (padrão: 1)

 

Sim

Object

customer

Dados pessoais do pagador.

Atributos de customer

 

name* // nome (String)

 

 

cpf* // CPF do cliente (sem pontos, vírgulas ou hífen) (String)

 

 

email // Endereço de email válido do cliente (String)

 

 

phone_number // Telefone válido do cliente, sem caracteres especiais (String)

 

 

birth // Data de Nascimento (data válida em formato YYYY-MM-DD) (String)

 

 

address // Endereço do Cliente (Object) (mais informações)

 

 

juridical_person // Dados de pessoa jurídica (Object) (mais informações)

 

Sim

Object

expire_at

Data de vencimento do carnê. O intervalo das parcelas de um carnê é sempre de 1 (um) mês entre elas.
Formato: YYYY-MM-DD

Sim

String

repeats

Número de parcelas do carnê.
Mínimo de 2 parcelas e máximo de 12 parcelas

Sim

Integer

split_items

Dividir itens entre as parcelas. Define se os itens do carnê serão divididos entre as parcelas (true), ou se o valor de cada parcela será o valor total dos itens (false).

Não

Boolean

metadata

Define dados específicos da transação.

 

custom_id // Permite associar uma transação Gerencianet a uma ID específica de seu sistema ou aplicação, permitindo identificá-la caso você possua uma identificação específica e queira mantê-la. Máximo de 255 caracteres. String/null.

 

 

notification_url // Endereço de sua URL válida que receberá as notificações de mudanças de status das transações. Máximo de 255 caracteres. String/null.

 

Não

Object

configurations

Permite incluir no carnê multa e juros caso seja pago após o vencimento.

Atributos de configurations

 


fine, // valor cobrado de multa após o vencimento. Por exemplo: se você quiser 2%, você deve informar 200Mínimo de 0 e máximo de 1000. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem multa, utilize 0 como valor do atributo fine


 

 


interest, // valor cobrado de juros por dia após a data de vencimento. Por exemplo: se você quiser 0,33%, você deve informar 33Mínimo de 0 e máximo de 330. Integer.

Caso você possua configurações de multa ativada na Gerencianet e queira gerar emissões na API sem juros, utilize 0 como valor do atributo interest


 

Não

Object

message

Permite incluir no boleto uma "observação", ou em outras palavras, uma mensagem para o cliente. Essa mensagem poderá ser vista nos e-mails relacionados à cobrança, no boleto ou carnê.
Máximo de 80 caracteres. String.

Não

String

discount

Define dados de desconto sobre a cobrança.

Atributos de discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

Não

Object

conditional_discount

Define desconto condicional que é válido até uma data específica. Se o pagamento não for efetuado até aquela data, o desconto é invalidado.

Atributos de conditional_discount

 


type*, // Tipo do desconto (String). Valores permitidos:
currency: o desconto será informado em centavos;
percentage: o desconto será informado em porcentagem.

 

 


value*, // Valor do desconto (Integer). Se o tipo do desconto for currency, o valor desta tag deverá ser informada pelo integrador em centavos (ou seja, 500 equivale a R$ 5,00). Caso o tipo do desconto seja percentage, o valor deverá ser multiplicado por 100 (ou seja, 1500 equivale a 15%). Exemplos:
1) currency // deve ser informado em centavos, ou seja, se o desconto será de R$ 5,99, o integrador deve informar 599;
2) percentage // deve ser informado em centavos, ou seja, se o desconto é de 15%, o integrador deve informar 1500.

 

 


until_date*, // Data máxima que o desconto será concedido. (String). Formato: YYYY-MM-DD

 

Não

Object

* valor obrigatório

 

Pagamento do Bolix realizado como Pessoa Jurídica (PJ)

O cliente associado à transação pode ser uma Pessoa Jurídica. Nesse caso, devem ser informados a Razão Social e o CNPJ da empresa pagadora dentro do atributo juridical_person.

Veja detalhes neste link sobre como gerar um pagamento para um cliente que seja Pessoa Jurídica (PJ).

 

Relação de todos os possíveis status de uma transação

Todas as transações possuem status, que representa a "situação" dessa transação. Portanto, é importante conhecer os possíveis status de uma transação na API para fornecer as devidas tratativas em seu sistema.

Confira neste link todos os detalhes dos possíveis status das transações.

 

Callbacks (notificações) das transações Bolix da API para seu sistema

As notificações permitem que você seja informado quando uma transação tiver seu status alterado. Dessa forma, você poderá identificar quando um boleto for pago, por exemplo.

Confira neste link todos os detalhes sobre como implementar a sua URL de notificação.

Instalando versão mais recente da SDK PHP da Gerencianet via GitHub com o Git - Maykon Silveira

10
  • HD
  • 14+

Saiba como instalar e configurar nossa SDK em PHP para API Pix e API Boletos (Bolix)


Nossa API é RESTful e responde em JSON. A Gerencianet utiliza OAuth para fornecer acesso autorizado à API. Nossa SDK de PHP já está preparada para realizar essa autenticação automaticamente.

A seguir, confira os procedimentos para instalação da SDK da Gerencianet em PHP:

 

Instalando via Packagist com o Composer

composer require gerencianet/gerencianet-sdk-php

Instalando versão mais recente via GitHub com o Git

Link do git https://github.com/gerencianet/gn-api-sdk-php

git clone https://github.com/gerencianet/gn-api-sdk-php.git
cd gn-api-sdk-php/
composer install

É importante frisar que as extensões cURLjsonext-simplexml & openssl devem estar ativadas.

 

 IMPORTANTE

Atualmente, disponibilizamos quatro versões da SDK. A versão 1.x e 2.x é compatível com versões do PHP superiores à versão 5.4 e inferiores à 7.0, possuindo também alguns componentes desatualizados, como o Guzzle. Caso você tenha uma versão do PHP superior à 5.5 e inferior a 7.0, sugerimos utilizar a versão 3.x da nossa SDK. Para versões do PHP maior ou igual 7.2, sugerimos que instale a versão 4.x da SDK.

Vá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa:

  1. Pré-requisitos

  2. Instalação do Composer em Windows

  3. Instalação do Composer em Linux

  4. Instalação biblioteca PHP da Gerencianet sem o Composer

  5. Erros Comuns (cURL error 60 ou cURL error 77)

  6. Vídeo: Instalação do Composer (Windows e Linux)

  7. Extra: timeout option

1. Pré-requisitos

Os seguintes pré-requisitos devem ser considerados, de acordo com a branch utilizada:

Versão da branch Status Packagist Repositório Versão do PHP

1.x

Mantido

gerencianet/gerencianet-sdk-php:1.0.17

v1

> = 5.4 (não é compatível com PHP 7.x)

2.x

Mantido

gerencianet/gerencianet-sdk-php:2.4.1

v2

> = 5.5 (compatível com PHP 7.x)

3.x

Mantido

gerencianet/gerencianet-sdk-php:3.1.0

v3

> = 5.6 (compatível com PHP 7.x e Guzzle <= 6.5.2)

4.x

Mantido

gerencianet/gerencianet-sdk-php

v4

> = 7.2

 Nota:

Para a utilização da biblioteca em PHP, recomendamos a instalação através do Composer (gerenciador de dependências).

Caso prefira prosseguir sem o Composer, basta seguir os procedimentos descritos no título 4. Instalação biblioteca PHP da Gerencianet sem o Composer.

 

2. Instalação do Composer em Windows

Instalaremos o Composer no Windows para baixar as nossas bibliotecas. Se preferir, pode seguir neste link o tutorial do próprio site oficial do Composer.

a) Primeiramente, vamos baixar o instalador do Composer para Windows neste link e, assim que o download for finalizado, execute-o;

b) Você precisará informar o caminho de instalação do seu PHP. Caso você esteja utilizando um servidor Wamp, por exemplo, e na instalação surgir uma mensagem relacionada ao arquivo "openssl", você precisará informar seu arquivo *.exe do PHP contido no diretório raiz do Wamp (geralmente em \wamp\bin\php\php.7.2\). Cabe frisar que a pasta php.7.2 refere-se a versão do PHP que está sendo utilizado na confecção dessas instruções, portanto, esse diretório poderá estar com outro nome, conforme a versão do seu PHP;

c) Durante a instalação, após indicar o diretório do seu PHP, clique em next. A instalação poderá retornar uma mensagem de alerta relacionado à configuração do "openssl". Trata-se de uma mensagem comum que significa que o "openssl" está desabilitado, contudo, vamos resolver de forma rápida e fácil.

 

 Observação

Caso não seja retornada nenhuma mensagem sobre o "openssl", apenas prossiga para o subtítulo Baixando as dependências, localizado mais abaixo.

Para habilitar seu "openssl", será necessário alterar o arquivo php.ini.

a) Abra o diretório de instalação do seu php e localize o arquivo php.ini;

b) Abra o arquivo php.ini em um editor de texto (p. ex: notepad++, sublime, etc) e pressione CTRL + F e pesquise pela palavra “openssl” (sem as aspas);

c) O sinal de ponto e vírgula ( ; ) desabilita o arquivo php_openssl.dll. Apague este sinal e ele habilitará o arquivo, ou seja:

  • Está assim: ;extension=php_openssl.dll

  • Deve ficar assim: extension=php_openssl.dll

Agora, salve o documento (pressione CTRL + S) e feche o arquivo.

d) A extensão estará habilitada e você poderá continuar com a instalação. Para que a instalação seja atualizada em relação ao procedimento, é importante que você retorne uma tela e depois avance com a instalação normalmente.

 

Baixando as dependências

a) Crie uma pasta chamada composer no seu diretório Wamp, dentro da pasta www, de forma que tenha essa estrutura: \wamp\www\composer

b) Agora, vamos realizar a instalação das dependências. Abra o prompt de comando do Windows (cmd) e navegue até o diretório raiz, em \wamp\www\composer

c) Vamos executar o comando de instalação das dependências (SDK PHP da Gerencianet) dentro desse diretório. Para tal, execute o comando abaixo:

composer require gerencianet/gerencianet-sdk-php

d) Após a execução do comando, todas as dependências serão instaladas em seu diretório, inclusive a pasta vendor com o arquivo autoload.php.

Pronto, agora é só começar a utilizar as soluções de integração da Gerencianet. Veja a tabela com os tipos de integrações.

 

3. Instalação do Composer em Linux

É possível instalar o Composer em cada projeto (instalação local) ou ter acesso a ele em qualquer parte do sistema (instalação global). Se preferir, pode seguir neste link o tutorial do próprio site oficial do Composer. Aqui, vamos efetuar a instalação global. Para tal, execute no Terminal o seguinte comando:

 

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

 

Arquivo "composer.json"

Um dos principais arquivos para se trabalhar com o Composer é o composer.json. É nele que as instruções sobre os pacotes que serão usados no projeto ficam contidas. Este é um arquivo de extensão .json comum que deve ficar na raiz de seu projeto.

A diretiva require no arquivo composer.json informa ao Composer quais os pacotes necessários para o projeto - neste caso, o repositório central é o Packagist.

Agora, vamos informar ao Composer que a Gerencianet fará parte do gerenciamento de dependências inserindo o conteúdo abaixo no final do arquivo composer.json (que deve ficar na raiz do projeto):

{"require": 
  {
    "gerencianet/gerencianet-sdk-php": "^4.*"
  }
}

É hora de instalar os pacotes. Vá até o diretório em que está seu projeto no Terminal e execute:

 

$ composer install

 

 

E pronto! O download das dependências irá acontecer automaticamente, estas serão armazenadas em suas respectivas pastas e o Composer continuará com o restante do trabalho ao gerar o arquivo composer.lock.

Cabe frisar que, caso você necessite, por exemplo, excluir um pacote, basta deletar sua referência do arquivo composer.json e atualizar o Composer através do seguinte comando:

 

$ composer update

 

 

Dessa forma, o Composer será atualizado e, como não há mais a presença do pacote na diretiva require, ele será imediatamente "desinstalado".

 

Resumo:

  • Instalar o Composer;
  • Informar, no arquivo composer.json, a SDK da Gerencianet que será instalada;
  • Executar o comando de instalação no diretório do projeto: $ composer install;
  • Pronto!

 

4. Instalação biblioteca PHP da Gerencianet sem o Composer

O uso do Composer (gerenciador de dependências) é recomendável, mas não obrigatório. Caso seja de seu interesse prosseguir sem utilizá-lo, você pode baixar diretamente uma de nossas branches, descompactar e subir a pasta (inclusive o arquivo "autoload.php") para o diretório de seu projeto.

Atualmente, oferecemos quatro branches, intituladas master3.x2.x1.x, sendo:

  • master: utiliza versão recente do guzzle (^7.0.0) e é compatível com versões recentes do PHP acima da 7.2. Esta é a versão padrão quando se baixa pelo Composer, sendo indicada para todos os projetos. Acesse o Packagist.

  • 3.x: utiliza até a versão guzzle (6.0.0) e é compatível com versões do PHP (5.5, 5.6, 7.x). Acesse o Packagist.

  • 2.x: utiliza até a versão guzzle (6.0.0) e é compatível com versões do PHP (5.5, 5.6, 7.0 e 7.1). Acesse o Packagist.

  • 1.x: versão anterior da SDK, compatível com PHP 5.4 e 5.5 e utiliza guzzle 5.3.0. Baixe neste link.

A branch master é a default, porém, você pode instalar a branch 1.x. No decorrer desta página você encontrará orientações para as duas versões.

Importante reforçar que o conteúdo presente neste .zip é apenas um requisito para que você possa começar a utilizar a SDK em PHP da Gerencianet. Esta pasta por si só não é um "exemplo pronto" de uso da API Gerencianet, mas a SDK em PHP da Gerencianet que permite a utilização da API.

 

5. Erros Comuns (cURL error 60 ou cURL error 77)

Os erros a seguir não são da API Gerencianet, mas relacionados à componentes de seu servidor. Confira abaixo os erros mais comuns durante a instalação de nossa API e veja as soluções:

 

cURL error 60

cURL error 77

Como oferecer pagamento online em meu site? - Maykon Silveira

10
  • HD
  • 14+

Como oferecer pagamento online em meu site? - Maykon Silveira

Você tem várias opções para oferecer pagamentos online em seu site. Para escolher a mais adequada, você precisa analisar em qual cenário você se encaixa.

Botão de Pagamento

O Botão de Pagamento é uma ferramenta simples que pode ser utilizada por qualquer pessoa. Para incluí-lo em seu site é necessário ter um conhecimento básico de HTML. Com ele, você disponibiliza um botão ou link em seu site para que seu cliente clique quando quiser comprar algum produto ou serviço. Ao clicar no botão, ele será direcionado para a página de pagamentos, onde poderá preencher os dados e escolher a forma de pagamento.

É possível criar botões para pagamentos únicos ou pagamentos recorrentes.

Público-alvo

  • Blogs e Sites;
  • Sites que utilizam o WIX e similares;
  • Redes Sociais (Facebook, Instagram, etc);
  • Eventos;
  • Pequenas lojas.

Como gerar o botão?

  1. Acesse o menu Cobranças -> Botões de Pagamento;
  2. Clique no botão “Criar Novo”;
  3. Escolha se a cobrança será única ou recorrente;
  4. Defina os métodos de pagamento;
  5. Informe os dados da cobrança;
  6. Defina os dados do botão de pagamento;
  7. Copie o código HTML do botão ou o link de pagamento e cole no ponto desejado do seu site.

API de Pagamentos

Para integrações mais sofisticadas recomendamos a utilização da nossa API de pagamentos. Tendo em vista a variedade de integrações com a Gerencianet, reunimos nesta tabela informações para facilitar sua escolha. Por isso, escolha a melhor integração, de acordo com suas necessidades.

Como visualizo meu “token único” de integração no Gerencianet? - Maykon Silveira

10
  • HD
  • 14+

Como visualizo meu “token único” de integração no Gerencianet? - Maykon Silveira

Este “token único” é utilizado em integrações com a versão anterior da API (também conhecido como “Fortunus”), que era aquela integração em que o token solicitado era único, ou seja, sem utilizar Client_Id e Client_Secret.

Caso seja essa sua necessidade, de uma integração de “token único” na nova versão do sistema, basta seguir os passos abaixo:

    1. Acesse o menu API -> Minhas Aplicações -> Nova Aplicação;

 

    1. Informe o nome da integração e ative o “Modo de Compatibilidade” (veja onde);

 

    1. Clique em “Criar nova aplicação”.

 

Depois que a aplicação for criada, o token de integração estará disponível conforme esta imagem.

Reenvio de callback em aplicações da API em modo de compatibilidade no Gerencianet - Maykon Silveira

10
  • HD
  • 14+

Reenvio de callback em aplicações da API em modo de compatibilidade no Gerencianet - Maykon Silveira

Estas orientações são aplicáveis a quem utiliza aplicação da API em “modo de compatibilidade“. Em outras palavras, é voltado para utilizadores de uma versão anterior da API (aquela em que o token solicitado era único, ou seja, que não faz uso de chaves Client_Id e Client_Secret).

Quando a sua URL está configurada corretamente, mas por algum motivo o seu sistema parou de funcionar ou apresentou problema, sua URL é desativada e as notificações não são enviadas. Neste caso, você recebe um e-mail, como o assunto “Falha na URL de callback”, informando sobre desativação da URL.

Quando isso acontece, você deve testar novamente a sua URL no menu “API -> Minhas Aplicações -> Sua Aplicação -> Callbacks” e, em caso de resposta com sucesso (200), clique no botão "Desativado". Quando o status do botão for "Ativado", reenvie as notificações de confirmação de pagamento. Para isso, siga o procedimento abaixo:

    1. Clique no menu “API -> Minhas Aplicações -> Sua Aplicação -> Callbacks” da conta Gerencianet

 

    1. Em frente da URL de cobrança com pagamento confirmado, clique no botão "Logs"

 

    1. Selecione as cobranças de acordo com os filtros. Você pode selecionar a cobrança pelo número, se desejar reenviar callback de uma cobrança específica, por status de notificação e pelo período de notificação. As cobranças marcadas com o status "não" não foram enviadas por um dos erros explicados nos tópicos abaixo

 

    1. Clique em "Reenviar callbacks"

 

    1. Clique em "Confirmar" para realizar o reenvio

 

Pronto! O callback entra em uma fila de envio e dentro de alguns minutos é reenviado.

Também é possível reenviar callbacks de cobrança cancelada.

É importante sempre monitorar o status da sua URL de callback para evitar qualquer problema.

Possíveis erros na desativação automática de uma URL

A URL de callback que recebe as nossas notificações nada mais é do que um caminho ou endereço pelo qual entregamos as referidas informações ao seu sistema. Uma similaridade pode ser associada a um endereço de entrega por correspondência, onde o cliente informa para qual destino a correspondência deve ser entregue, por exemplo.

A notificação é uma instrução enviada via POST, que contém um Token (código da notificação) que servirá de parâmetro para que seu sistema consulte a alteração de status de uma determinada transação.

Quando o sistema Gerencianet envia um POST para este arquivo, disponível no endereço da URL, e ele responde dizendo “Recebido”, por meio de um código HTTP de valor “200”, nosso sistema consegue entender que a comunicação foi realizada com sucesso.

Na impossibilidade de recebermos essa confirmação, nosso sistema tenta por mais nove vezes, em intervalos distintos, entregar este POST. Após a última tentativa de entrega, caso não seja possível confirmá-la, sua URL é desativada automaticamente pelo sistema Gerencianet e você recebe um e-mail informando sobre a desativação. Este procedimento é realizado para que o nosso sistema não fique de forma intermitente enviando requisições sem saber se serão entregues ou não para os sistemas dos clientes.

Problemas mais comuns para a desativação automática da sua URL

Para os casos em que a URL de notificação do sistema do cliente já tenha funcionado, mas parou, duas situações se apresentam mais comuns:

    1. Configurações do Load Balance do seu sistema. É necessário que o cliente avalie, em seu sistema, o redirecionamento dos IP’s (entrada/saída). Se enviarmos uma requisição e o seu sistema imediatamente não retornar com um cabeçalho HTTP 200, a URL será automaticamente desativada. Acontece quando o IP de entrada não é idêntico ao de saída. Também é importante verificar se não existe nenhum firewall bloqueando este IP;

 

  1. Problemas de indisponibilidade do serviço da hospedagem. É necessário avaliar se o serviço se mantém 100% disponível ao longo do dia. Se tentarmos comunicar com o seu servidor em um determinado momento e ele não responder, sua URL também será desativada automaticamente. A Gerencianet faz até 10 tentativas em um intervalo de uma hora aproximadamente.

Se após avaliar estes erros mais comuns não conseguir resolver o problema, envie um ticket para a nossa equipe. É importante colocar todas as informações relacionadas às suas dúvidas para facilitar e agilizar o atendimento. O ticket pode ser enviado a qualquer momento e você receberá a resposta por e-mail em até 1 dia útil.

cURL error 60 ou cURL error 77, como resolver no gerencianet? - Maykon Silveira

10
  • HD
  • 14+

cURL error 60 ou cURL error 77, como resolver no gerencianet? - Maykon Silveira

Os erros cURL error 60 e cURL error 77 são comuns quando da utilização da linguagem PHP e não são da API Gerencianet, mas relacionados à componentes de seu servidor. Fique tranquilo, é bem simples de resolver, confira:

cURL error 60

Este erro está relacionado ao cURL configurado em seu servidor (ou computador) estar exigindo um certificado (https/ssl) local. Geralmente ocorre em servidores Windows ou plataforma Wamp Server, por exemplo. Este erro também pode ser apresentado como CURLE_SSL_CACERT (60) – Peer certificate cannot be authenticated with known CA certificates.

Para resolver, vamos configurar para que seu servidor tenha um certificado para testes:

    1. Faça o download do arquivo cacert.pem em https://curl.haxx.se/ca/cacert.pem e salve-o em qualquer lugar do seu sistema, de preferência na pasta do servidor (C:\Wamp, caso esteja utilizando-o);

      .

    2. Abra seu arquivo de configuração do PHP (arquivo php.ini). Para o WampServer, normalmente este arquivo está localizado em C:\wamp\bin\php\phpX.Y.Z, onde X.Y.Z é a versão do seu PHP) e faça a alteração a seguir:

.

Procure pela linha abaixo:

;curl.cainfo =

.

Mude para:

curl.cainfo = "C:\caminho\onde\voce\salvou\seu\certificado\cacert.pem"

.

    1. Reinicie seu servidor Apache e teste novamente.

.

Lembrando que estas configurações foram necessárias porque seu servidor está exigindo um certificado local (erro: URL error: 60 - SSL certificate problem: unable to get local issuer certificate) e sua máquina/servidor não possui.

cURL error 77

Esse erro está associado ao caminho do certificado que está definido de forma incorreta no arquivo php.ini.

Atualmente, deve estar assim:

curl.cainfo = "C:\xampp\php\cacert.pem"

.

Deverá alterar e de forma que fique assim:

curl.cainfo = "C:\xampp\php\cacert.pem.txt"

.

Adicionalmente, caso o método acima não solucione, outra possível solução está relacionada a referência do certificado. Ele pode até já estar instalado local em sua máquina, mas os certificados podem estar localizados em /etc/ssl/certs/ca-certificates.crt ao invés de /etc/pki/tls/certs/ca-bundle.crt. Neste caso, bastaria definir a variável de ambiente CURL_CA_BUNDLE para o caminho correto.

No caso do boleto, quais atributos são obrigatórios e opcionais no gerencianet? - Maykon Silveira

10
  • HD
  • 14+

No caso do boleto, quais atributos são obrigatórios e opcionais no gerencianet? - Maykon Silveira

São 4 (quatro) informações obrigatórias ao emitir um boleto:

  • Nome do cliente;
  • CPF do cliente;
  • Telefone do cliente; e
  • Data de vencimento do boleto.

Essas informações devem ser válidas e únicas por cliente, ou seja, você não pode gerar emissões usando os mesmos dados para vários clientes diferentes.

Para visualizar os atributos opcionais, veja nesta página de nossa documentação.

Entendendo o fluxo das notificações (callbacks) da API Gerencianet - Maykon Silveira

10
  • HD
  • 14+

Esta página tem como objetivo apresentar o Histórico de Notificações. Este recurso está disponível na API de sua conta Gerencianet e permite visualizar os POSTs que a Gerencianet dispara para a URL de notificação definida pelo integrador. Este POST contém apenas uma informação: um token de notificação.

Ao término da leitura deste conteúdo, espera-se que você consiga interpretar os cenários pertinentes a notificações (callbacks), como em situações em que uma cobrança em seu sistema não foi baixada, o callback foi disparado para uma URL que você definiu previamente mas que não é mais válida, etc.

Outras informações sobre o processo de definição da URL de notificação e a mecânica envolvendo a consulta de detalhes de uma notificação podem ser observadas na página Recebendo as notificações.

Vá direto ao ponto – utilize o índice abaixo para encontrar a resposta de maneira mais eficiente:

 

 

 

 

 

CURSOS PROGRAMADOR DE ELITE

Veja Mais

Depoimentos em Textos

  • Fabrício M. Damasceno 08/05/2024 10
    Recebeu 5 estrelas!
  • Manuel Gomes 08/05/2024 10

    Muito bom, bem explicado tirou varias duvidas!

  • Carlos E. Gonçalves 08/05/2024 10
    Recebeu 5 estrelas!