leonardo-max / contaazul
ContaAzul API
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-09-11 17:28:26 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获取令牌,从而获得访问查询和操作端点的权限。但是,请放心,如果您遵循以下步骤,本库将轻松处理认证过程。
使用库
开始认证
首先,需要调用开始认证过程的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
为了使您的进程井然有序并且具有良好的性能,请考虑将此返回值存储在session中,这样您可以在以后检查令牌剩余的过期时间,同时还可以访问refresh_token,该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(对于带有JSON的put)