Autenticação

Todas as requisições devem ser autenticadas com as credênciais de acesso (API_KEY e o SECRET_TOKEN) utilizando basic auth.

O token secreto deve ser armazenado com segurança, não sendo fornecido a terceiros e não utilizado como, por exemplo, em aplicações JavaScript que realizam requisições AJAX a partir do navegador.

Exemplo com CURL:

curl \
-X GET \
-u 'API_KEY:SECRET_TOKEN' \
'https://api.melhorenvio.com.br/v1/shipping/services'

Note que no exemplo acima foi utilizado CURL e a "API_KEY" deve ser substituída pela API_KEY e o "SECRET_TOKEN" pelo respectivo token secreto.

Exemplo com Guzzle em PHP:

<?php

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://api.melhorenvio.com.br/v1/shipping/services', [
    'auth' => ['API_KEY', 'SECRET_TOKEN']
]);
if ($response->getStatusCode() === 200) {
    echo $response->getBody();
}

Exemplo de resposta:

[
  {
    "name": "Correios",
    "icon": "http://www.melhorenvio.com.br/shipping-companies/images/Correios.png",
    "services": [
      {
        "id": 1,
        "name": "Expresso",
        "type": 2,
        "level": 3
      },
      {
        "id": 2,
        "name": "PAC",
        "type": 1,
        "level": 3
      }
    ]
  },
  ...
]

Headers

Todas as requisições, com exceção das que utilizam o método GET, devem possuir obrigatoriamente o header:

'Content-Type: application/json;charset=UTF-8'

Exemplo com CURL:

curl \
-X GET \
-u 'API_KEY:SECRET_TOKEN' \
-H 'Content-Type: application/json;charset=UTF-8' \
'https://api.melhorenvio.com.br/v1/shipping/services'

Obtendo credências

Para obter as credências (API_KEY e SECRET_TOKEN), deve ser requisitado as mesmas uma única vez através do endpoint e payload abaixo:

Endpoint POST /authorize

Payload:

{
  "name": "Melhor Loja", // nome da loja
  "url": "http://melhorloja-parceira-do-melhorenvio.com.br" // url do site
}

As informações acima são importantes para que o usuário identifique a partir de qual site ele está comprando os envios e para que seja redirecionando para o site após concluir a compra.

Exemplo com CURL:

curl \
-X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{"name":"Melhor Loja","url":"http://melhorloja-parceira-do-melhorenvio.com.br"}' \
'https://api.melhorenvio.com.br/v1/authorize'

Resposta:

{
  "api_key": "0684def258075e2de794dc9d514bb66b2f664c08",
  "secret_token": "319a77d0ab276204314c191a681674176b7c88b999a30122eab4984b229bc124"
}

results matching ""

    No results matching ""