melhorenvio/auth-sdk-php

1.1.1 2022-10-31 14:42 UTC

README

Latest Version on Packagist Build Status Quality Score Total Downloads

现在您可以通过快速简便的方式将Melhor Envio的授权流程集成到您的电子商务项目中。

索引

依赖项

require

  • PHP >= 7.4
  • Ext-json = *
  • Guzzlehttp/guzzle >= 7.0

require-dev

  • phpunit/phpunit >= 9.5

安装

您可以通过composer安装此包

composer require melhorenvio/auth-sdk-php

初始配置

安装完成后,您将准备传递给OAuth类的参数数据,请注意这些数据与您在Melhor Envio网站上创建应用时生成的数据相同。

如果您还没有执行此步骤,请访问 https://melhorenvio.com.br/painel/gerenciar/tokens

$appData = [
    'client_id' => 'your-client-id',
    'client_secret' => 'your-client-secret',
    'redirect_uri' => 'your-redirect-uri'
];

然后,您将通过传递上述参数实例化OAuth类。

$provider = new OAuth2($appData['client_id'], $appData['client_secret'], $appData['redirect_uri']);

使用示例

一旦OAuth类实例化,您将使用setScopes()方法指定您的应用程序所需的权限,这可能是一个或多个。权限是用户可以对生成的令牌执行的操作的权限,例如,查看订单,查看购物车,发送订单等。

请注意,权限在Melhor Envio API文档中可用,请参阅以下链接: https://docs.menv.io/?version=latest#03becc90-8b38-47bd-ba14-7994017462f0

接下来,请使用getAuthorizationUrl()方法返回的URL进行重定向。

$provider->setScopes('shipping-calculate');
header("Location: {$provider->getAuthorizationUrl()}");
exit;

查看使用的权限

要查看使用的权限,即即将生成的令牌的访问权限,请使用getScopes()方法,该方法将返回一个包含使用权限的数组。

$authData[] = $provider->getScopes();

生成访问令牌

到目前为止,我们已经看到了如何实例化OAuth类,选择要使用的权限,并构建URL,那么下一步是什么?

我们有以下场景,您将使用getAccessToken()方法来获取包含完成对Melhor Envio API请求所需凭证的信息的响应。

$authData[] = $provider->getAccessToken($_GET['code'], $_GET['state']);

这些信息响应的一个示例

Array
(
    [0] => Array
        (
            [token_type] => Bearer
            [expires_in] => your-token-expiration-timestamp
            [access_token] => your-token
            [refresh_token] => your-refresh-token
        )

)

定义回调URL

用户确认使用Melhor Envio账户授权后,Melhor Envio API将向您的应用程序发起请求,包含用于请求令牌所需的code。要定义此回调URL,请使用setRedirectUri()方法并传递要使用的URL,请注意此URL必须存在且有效,并且应与Melhor Envio平台中的应用程序注册中提供的URL相同。

$provider->setRedirectUri('http://foo.com.br/callback');

查看回调URL

要查看SDK正在使用的哪个回调URL,请使用getRedirectUri()方法。

$provider->getRedirectUri();

刷新令牌

经过30天后,您的令牌将过期。但请放心,此套餐提供了刷新令牌的方法,以便您的应用在令牌过期时做好准备。

由于这些信息是之前生成的,您将使用refreshToken()方法,并将相应数据作为参数传递,从而获得一个新的令牌。

$newAuthData = $provider->refreshToken($authData['refresh_token']);

查看端点

为了查看SDK中用于调用getEndpoint()方法的端点。

$newAuthData = $provider->getEndpoint();

环境

SDK在Melhor Envio的两种环境中工作,即生产环境和沙箱环境。为了正确工作,需要告知正在使用哪个环境,默认使用沙箱环境。要更改环境,只需使用setEnvironment()方法,并传递一个字符串来指定环境(沙箱或生产)。

$newAuthData = $provider->setEnvironment('production');

测试

composer test

更新日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关更多详细信息,请参阅贡献指南

安全性

如果您发现任何安全问题,请通过电子邮件发送至tecnologia@melhorenvio.com,而不是使用问题跟踪器

鸣谢

许可证

Melhor Envio。有关更多信息,请参阅许可证文件