Autenticação
A autenticação é feita por meio do fluxo OAuth2 Authorization Code (documentação em inglês).
Para realizar a autenticação, primeiramente é necessário credenciar-se como desenvolvedor parceiro DFranquias Pay, cadastrar seu aplicativo e gerar suas credenciais Client ID e Client Secret.
Cadastrando seu aplicativo
No menu lateral do painel de controle do seu ambiente web, na seção de Desenvolvedores, selecione Aplicativos conectados.
Para cadastrar um novo aplicativo, selecione Novo e digite o nome desejado para identificar a aplicação.
Feito isso, você verá na tela seu Client ID, o Client Secret e a URL de redirecionamento. Salve essas informações num lugar seguro - no seu aplicativo, essas informações normalmente ficam salvas em variáveis de ambiente, uma vez que são sensíveis e fornecem acesso à sua conta DFranquias Pay.
O próximo passo é escolher as permissões desejadas e gerar um código de autorização, que será utilizado para solicitar seu token de acesso.
Gerando um código de autorização
Para gerar um código de autorização, entre em Aplicativos conectados, selecione o menu de ações do aplicativo desejado e clique em Ver detalhes. A tela que se abrirá terá no canto superior direito o menu Ações. Selecione-o e clique na opção Nova autorização.
Feito isso, basta escolher as permissões desejadas para acessar, e confirmar a escolha. Após a confirmação, você será redirecionado para a URL de redirecionamento configurada quando criou o aplicativo.
Utilizando o código de autorização
Requisição
Para gerar o seu token de acesso, é necessário fazer uma requisição POST para o endpoint /oauth/token a partir da URL base da API,
considerando o ambiente que será utilizado - teste ou produção.
O tipo de conteúdo deve ser multipart/form-data e o conteúdo deve ser como segue:
- 🐘 PHP
- 🐍 Python
<?php
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Utils;
use GuzzleHttp\Psr7\Request;
$client = new Client();
$options = [
'multipart' => [
[
'name' => 'grant_type',
'contents' => 'authorization_code'
],
[
'name' => 'client_id',
'contents' => 'seu Client ID'
],
[
'name' => 'client_secret',
'contents' => 'seu Client Secret'
],
[
'name' => 'redirect_uri',
'contents' => 'sua URL de redirecionamento'
],
[
'name' => 'code',
'contents' => 'seu código de autorização'
]
]
];
$request = new Request('POST', 'https://dev.dfranquiaspay.com.br/oauth/token');
$response = $client->sendAsync($request, $options)->wait();
import requests
url = "https://dev.dfranquiaspay.com.br/oauth/token"
payload = {
'grant_type': 'authorization_code',
'client_id': 'seu Client ID',
'client_secret': 'seu Client Secret',
'redirect_uri': 'sua URL de redirecionamento',
'code': 'seu código de autorização'
}
response = requests.request("POST", url, data=payload)
print(response.text)
Resposta
A resposta do endpoint contém a seguinte estrutura:
{
"access_token":"token de acesso",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token":"refresh token",
}
Para acessar a API, utilize o access_token. O primeiro token gerado a partir do código de autorização tem duração de uma hora.
Os subsequentes, gerados a partir dos refresh tokens, duram 15 minutos cada.
Recomendamos utilizar um cron job na sua aplicação para automatizar o processo de renovação dos tokens de acesso.
Utilizando o refresh token
A requisição para consumir um refresh token é muito similar à requisição feita com o código de autorização:
- 🐘 PHP
- 🐍 Python
<?php
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Utils;
use GuzzleHttp\Psr7\Request;
$client = new Client();
$options = [
'multipart' => [
[
'name' => 'grant_type',
'contents' => 'refresh_token'
],
[
'name' => 'client_id',
'contents' => 'seu Client ID'
],
[
'name' => 'client_secret',
'contents' => 'seu Client Secret'
],
[
'name' => 'refresh_token',
'contents' => 'seu refresh token'
]
]
];
$request = new Request('POST', 'https://dev.dfranquiaspay.com.br/oauth/token');
$response = $client->sendAsync($request, $options)->wait();
import requests
url = "https://dev.dfranquiaspay.com.br/oauth/token"
payload = {
'grant_type': 'refresh_token',
'client_id': 'seu Client ID',
'client_secret': 'seu Client Secret',
'code': 'seu refresh token'
}
response = requests.request("POST", url, data=payload)
print(response.text)
A resposta é idêntica à resposta anterior, com a diferença apenas na duração do token, que será de 900 segundos ou 15 minutos.