melhorenvio/melhor-envio-sdk-php

dev-main 2023-03-06 17:19 UTC

This package is auto-updated.

Last update: 2024-09-06 20:58:25 UTC


README

Latest Version on Packagist Total Downloads

现在在您的电子商务项目中获得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。有关更多信息,请参阅许可文件