Agora ficou mais fácil ter o serviço do Melhor Envio no seu projeto de e-commerce.
- Instalação
- Cofiguração Inicial
- Exemplos de uso
- Mais exemplos
- Testes
- Changelog
- Contribuindo
- Segurança
- Créditos
- Licença
- PHP >= 7.4
- Ext-json = *
- Guzzlehttp/guzzle >= 6.5
- phpunit/phpunit >= 5
Você pode instalar o pacote via composer, rodando o seguinte comando:
composer require melhorenvio/melhor-envio-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']
);
$provider->setScopes('shipping-calculate');
$linkAuthorize = $provider->getAuthorizationUrl();
echo $linkAuthorize;
Para maiores informações sobre autenticação, acessar a documentação do Auth SDK: https://packagist.org/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;
Para maiores informações sobre cotações, acessar a documentação do Shipment SDK: https://packagist.org/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);
O Access Token gerado pelo Melhor Envio tem a validade de 1(um) mês, após esse período é possível atualizar o token de forma automatiza com o refresh token, por isso é necessário sempre manter atulizado os access tokens e refresh tokens, visando isso, o Melhor Envio SDK possui um evento de listerner de receber com os dados de tokens atualizados.
Você deverá implementar a lógica para persistir esses dados na sua plataforma, veja um exemplo abaixo:
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
])
});
Aqui você pode acessar mais exemplos de implementação
Dentro do projeto você encontrará alguns documentos de teste baseados em testes unitários
Você pode usar na aplicação tanto o comando:
composer test
Quanto o comando:
vendor/bin/phpunit tests
Consulte CHANGELOG para mais informações de alterações recentes.
Consulte CONTRIBUTING para mais detalhes.
Se você descobrir algum problema de segurança, por favor, envie um e-mail para [email protected], ao invés de usar um issue tracker.
Melhor Envio. Consulte Arquivo de lincença para mais informações.