melhorenvio / auth-sdk-php
Requires
- php: ^7.4|^8.0|^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-10 13:56:21 UTC
README
现在您可以通过快速简便的方式将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。有关更多信息,请参阅许可证文件。