Autenticação

A autenticação com nossa API é feita por meio de um token Bearer informada através do parâmetro HTTP Authorization, conforme pode ser visto abaixo no exemplo com postman.

Os tokens podem ser gerados pelo painel do usuário (token pessoal de acesso) em menu > gerenciar > tokens ou então via autorização de app pelo usuário (OAuth 2).

A Página de apps e tokens pode ser acessada (quando o usuário estiver logado no sistema) pelo link https://www.melhorenvio.com.br/painel/gerenciar/tokens ou acessando Painel de controle > Integrações.

Nesta página é possível gerar tokens de acesso, cadastrar novos apps e verificar os apps autorizados.

Para criar um novo token pessoal de acesso, basta clicar em novo token, informar um nome para o token e selecionar as permissões que serão fornecidas por meio do mesmo.

Para criar um novo app, basta clicar em novo app, informar o nome do app e a url de redirecionamento (url para onde o usuário é redirecionado após autorizar o app).

Client ID e o Secret serão utilizados para autenticação com a API para solicitar a autorização dos usuários.

No exemplo abaixo (em PHP/Laravel), pode ser visto o precesso de redirecionamento do usuário para autorização do app.

Deve ser fornecido:

  1. O Client ID (fornecido após cadastro do app).
  2. A URL de redirecionamento (cadastrado no app).
  3. As permissões (separado por espaço).

Nota a URL de callback deve ser estática e conforme configurada no app. Caso deseje passar algum argumento, é possível passar o campo state com o valor desejado para que retorne junto ao code, o campo state é passado do mesmo modo que O Client ID, a URL de redirecionamento e as demais informações.

Lista de permissões

  • cart-read (Visualização dos itens do carrinho)
  • cart-write (Cadastro e edição dos itens do carrinho)
  • companies-read (Visualização das informações de empresas)
  • companies-write (Cadastro e edição das informações de empresas)
  • coupons-read (Visualização dos cupons cadastrados)
  • coupons-write (Cadastro de novos cupons)
  • notifications-read (Visualização das notificações)
  • orders-read (Visualização das etiquetas)
  • products-read (Visualização de produtos)
  • products-write (Cadastro e edição de produtos)
  • purchases-read (Visualização das compras)
  • shipping-calculate (Cotação de fretes)
  • shipping-cancel (Cancelamento de etiquetas)
  • shipping-checkout (Checkout para compra de fretes (utiliza saldo da carteira))
  • shipping-companies (Consulta de transaportadoras)
  • shipping-generate (Geração de novas etiquetas)
  • shipping-preview (Pré-visualização de etiquetas)
  • shipping-print (Impressão de etiquetas)
  • shipping-share (Compartilhamento de etiquetas)
  • shipping-tracking (Rastreio de fretes)
  • ecommerce-shipping (Cotação e compra de fretes para sua loja)
  • transactions-read (Visualização das transações da carteira)
  • users-read (Visualização das informações pessoais)
  • users-write (Edição das informações pessoais)
  • webhooks-read (Visualização dos webhooks)
  • webhooks-write (Edição dos webhooks)

O usuário irá autorizar ou não a solicitação de acesso, redirecionando para a url de redirecionamento, havendo um parâmetro error caso não autorizado e um parâmetro code caso autorizado.

No exemplo abaixo (em PHP/Laravel), pode ser visto o processo de solicitação do token após autorização do usuário.

Deve ser fornecido:

  1. O Client ID (fornecido após cadastro do app).
  2. O Client Secret (fornecido após cadastro do app).
  3. A URL de redirecionamento (cadastrado no app).
  4. O Código fornecido após autorização.

Será fornecido então um array, contendo o tipo do token (Bearer), o tempo de expiração do token, o token de acesso e o token para atualização do token de acesso, conforme pode ser visto na imagem abaixo:

Neste caso, o token fornecido terá vida últil de 1296000 segundos (15 dias = 15 * 24 * 60 * 60).

Para atualizar o token, é utilizado o refresh_token para solicitação de um novo token, bem como um novo refresh_token, como pode ser observado no exemplo abaixo:

Nota: O payload enviado para rotas /oauth não devem ser em formato json, e sim application/x-www-form-urlencoded, form_params corresponde a este formado no Guzzle.

results matching ""

    No results matching ""