melhorenvio / melhor-envio-sdk-php
dev-main
2023-03-06 17:19 UTC
Requires
- php: ^7.4|^8.0|^8.1
- melhorenvio/auth-sdk-php: ^1.1.1
- melhorenvio/shipment-sdk-php: ^3.0.0
- phpunit/phpunit: 9.5.x-dev
- vlucas/phpdotenv: 5.4.x-dev
Requires (Dev)
- mockery/mockery: ^1.5
This package is auto-updated.
Last update: 2024-09-06 20:58:25 UTC
README
现在在您的电子商务项目中获得Melhor Envio服务变得更加容易。
索引
require
- PHP >= 7.4
- Ext-json = *
- Guzzlehttp/guzzle >= 6.5
require-dev
- phpunit/phpunit >= 5
安装
您可以通过运行以下命令来安装此包:
composer require melhorenvio/melhor-envio-sdk-php
初始配置
获取Melhor Envio账户授权链接
require "./vendor/autoload.php"; use MelhorEnvio\MelhorEnvioSdkPhp\Event; use MelhorEnvio\MelhorEnvioSdkPhp\OAuth2; use MelhorEnvio\Resources\Shipment\Product; $provider = new OAuth2( $appData['client_id'], $appData['client_secret'], $appData['redirect_uri'] ); $provider->setScopes('shipping-calculate'); $linkAuthorize = $provider->getAuthorizationUrl(); echo $linkAuthorize;
获取Access Token和Refresh Token
有关认证的更多信息,请参阅Auth SDK的文档:https://packagist.org.cn/packages/melhorenvio/auth-sdk-php
require "./vendor/autoload.php"; use MelhorEnvio\MelhorEnvioSdkPhp\Event; use MelhorEnvio\MelhorEnvioSdkPhp\OAuth2; use MelhorEnvio\Resources\Shipment\Product; $provider = new OAuth2( $appData['client_id'], $appData['client_secret'], $appData['redirect_uri'] ); $code = $_GET['code']; $tokens = $provider->getAccessToken($code); var_dump($tokens); die;
进行报价
有关报价的更多信息,请参阅Shipment SDK的文档:https://packagist.org.cn/packages/melhorenvio/shipment-sdk-php
require "./vendor/autoload.php"; use MelhorEnvio\Enums\Environment; use MelhorEnvio\MelhorEnvioSdkPhp\Event; use MelhorEnvio\MelhorEnvioSdkPhp\OAuth2; use MelhorEnvio\MelhorEnvioSdkPhp\Shipment; use MelhorEnvio\Resources\Shipment\Product; Event::listen('refresh', function ($token, $refreshToken) { // Put here trading rule to save accessToken e refreshToken. }); $oAuth2 = new OAuth2( CLIENT_ID, TEST_CLIENT_SECRET, TEST_REDIRECT_URI ); $this->shipment = new Shipment( $oAuth2, ACCESS_TOKEN, REFRESH_TOKEN ); $calculator = $shipment->calculator(); $calculator->postalCode('01010010', '20271130'); $calculator->setOwnHand(); $calculator->setReceipt(false); $calculator->setCollect(false); $calculator->addProducts( new Product(uniqid(), 40, 30, 50, 10.00, 100.0, 1), new Product(uniqid(), 5, 1, 10, 0.1, 50.0, 1) ); $quotations = $calculator->calculate(); var_dump($quotations);
接收更新的Access Tokens和Refresh Tokens
Melhor Envio生成的Access Token有效期为1个月,在此之后可以通过refresh token自动更新token,因此需要始终保持access tokens和refresh tokens更新,为此,Melhor Envio SDK具有一个监听器来接收更新的token数据。
您需要在您的平台中实现逻辑以持久化这些数据,以下是一个示例:
Event::listen('refresh', function ($token, $refreshToken) { // Aqui deve ser inserido a sua lógica de persitir as informações na sua plataforma, o código abaixo é apenas um exemplo, o mesmo deve ser subistituido para a sua realidade. Credentials::update([ 'access_token' => $token, 'refresh_token' => $refreshToken ]) });
创建Melhor Envio实例
更多示例
测试
在项目内部,您将找到一些基于单元测试的测试文档
您可以在应用中使用以下命令:
composer test
以及以下命令:
vendor/bin/phpunit tests
变更日志
有关最近更改的更多信息,请参阅CHANGELOG
贡献
有关更详细的信息,请参阅CONTRIBUTING
安全
如果您发现任何安全问题,请通过电子邮件发送到tecnologia@melhorenvio.com,而不是使用issue tracker。
致谢
许可
Melhor Envio。有关更多信息,请参阅许可文件