eudovic/contaazul

ContaAzul API库

dev-master 2020-11-25 14:33 UTC

This package is auto-updated.

Last update: 2024-09-25 23:45:58 UTC


README

此结构处理与Conta Azul API的集成,提供用于认证和请求所需端点的各种方法。

安装

composer require eudovic/contaazul:dev-master

使用方法

创建应用

第一步是创建一个应用,通过以下链接在Conta Azul开发者门户上创建应用:https://portaldevs.contaazul.com/。创建应用后,您将被重定向到类似于下图的页面,其中可以访问您的应用的client_id和secret_id。

请注意,在创建此门户中的应用时,需要特别注意重定向URL,因为由于使用OAuth2进行认证,访问令牌的代码将被发送到该URL,以便然后可以发出请求令牌并获取访问查询和操作端点的权限。但是,请放心,如果您按照以下步骤操作,此库将轻松处理认证过程。

使用库

开始认证

首先需要调用开始认证过程的请求。为此,需要调用以下URL:https://api.contaazul.com/auth/authorize?redirect_uri={REDIRECT_URI}&client_id={CLIENT_ID}&scope=sales&state={STATE}

以下是对每个参数的描述。

  • redirect_uri: 在应用中定义的相同URL。
  • client_id: 应用收到的匿名参数值。
  • scope: (Customer, Product, Service, Contract或Sale) 定义您对API的访问类型。
  • state: 开发者定义的值,作为请求的认证键。例如:state=DCEeFWf45A53sdfKef424
实例化类

在重定向URL指定的PHP文件中,需要实例化该类。以下是对库的示例实现。

$requireAutoload= __DIR__. '/vendor/autoload.php';
require $requireAutoload;

use ContaAzul\ContaAzul;
use ContaAzul\Helpers\Helpers;


//VARIÁVEIS NECESSÁRIAS PARA INICIALIZAÇÃ0
$client_id="SEU_CLIENT_ID";
$client_secret="SEU_SECRET_ID";
$redirect_uri="URL_DE_REDIRECIONAMENTO";// pega a url atual para negociar os pedidos da URL de redirecionamento.
$scope="sales";
$state=Helpers::generateRandomString(16);

//INSTANCIANDO A CLASSE
$apiContaazul=new ContaAzul($client_id,$client_secret,$redirect_uri,$scope,$state);
协商令牌

现在您需要进行请求以捕获由Conta Azul发送到参数 code 的代码。

if(isset($_REQUEST['code'])){
   $getToken=$apiContaazul->requestToken($_REQUEST['code']);
 }

使用requestToken方法,您将获得以下参数作为返回值

  • access_token
  • refresh_token
  • expire_in

为了使您的流程组织良好且性能良好,请考虑将此返回值保存在会话中,这样您可以稍后检查令牌剩余的过期时间,以及访问refresh_token,它将用于令牌更新。

更新令牌

很可能会在API使用期间令牌过期,因为其lifetime仅为60分钟。但请不要担心,您可以使用以下方法轻松更新令牌。

  $getToken=$apiContaazul->refreshToken($refresh_token);
使用API

现在,在拥有令牌的情况下,可以使用以下方法进行请求。

  $request=$apiContaazul->request($endpoint,$parametros,$token,$metodo);
  • $endpoint // 查询端点
  • $parametros // 发送到请求的参数
  • $token // 生成的令牌
  • $metodo // get-post-put-delete-postjson(用于带有原始数据的post)-putjson(用于带有原始数据的put)