kayooliveira/melhor-envio-sdk-php

dev-main 2022-04-24 20:26 UTC

This package is auto-updated.

Last update: 2024-09-25 02:36:41 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;

获取访问令牌和刷新令牌

有关认证的更多信息,请参阅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);

接收更新的访问令牌和刷新令牌

Melhor Envio生成的访问令牌有效期为1个月,在此之后可以通过刷新令牌自动更新令牌,因此需要始终更新访问令牌和刷新令牌。为此,Melhor Envio SDK具有一个监听器事件来接收更新的令牌数据。
您需要实现将数据持久化到您的平台的逻辑,以下是一个示例

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。有关更多信息,请参阅许可文件