Autorizar através do Site do Integrador

Esse é o fluxo de autorização que inicia através do site do integrador

O processo de autorização pelo site do Integrador inicia com o botão de Autorização. É atraves desse botão que o Seller ou o Fornecedor autoriza que o Integrador tenha acesso em alguns passos principais.

❗️

Requisito para essa etapa

Você deve registrar a aplicação para conseguir efetuar esses passo, isso é possível seguindo as etapas anteriores.

Como funciona o fluxo

918

Passo 0. Configurar o botão de 'Autorizar'

Aqui neste passo é necessário que você integrador ou desenvolvedor inclua no seu frontend da sua aplicação um botão ou link de acesso para que o Vendedor (Seller) Amazon possa autoriza-lo a acessar e modificar as suas informações de produção.

📘

Quando existe mais de uma região...

Se você tiver URIs de autorização OAuth para mais de uma região, certifique-se de configurar seus botões "Autorizar" para que os parceiros de vendas sejam redirecionados para a página de login dos Sellers (Vendedores) ou Vendors (Fornecedores)

Passo 1. O Seller inicia a autorização no site do Integrador

  1. O Seller entra no seu site de integrador (Se já possui conta faz login ou se é novo cadastra uma nova conta)

  2. O Seller clica no botão de autorização e se houver mais de uma região, seleciona a região que deseja autorizar.

  3. A sua aplicação carrega no browser do Seller a URI Oauth de autorização adicionando os seguintes parametros:

O redirect_uri, composto por:

  • URL do marketplace - Ex: https://sellercentral.amazon.com.br
  • String de autorização - /apps/authorize/consent?application_id=
  • Seu Application ID - Ex: amzn1.sp.solution.b4a1cfa0-0909-4bd0-83df-a7ac60c1508

Você pode obter o App ID no momento em que criamos o App no Seller Central.

E o parâmetro State:
Esse parâmetro pode ser usado para retornar algum dado como o ID do usuário, sabendo assim quem esta autenticando na SP-API.

  • State - Ex: state=userID

*Exemplo:

https://sellercentral.amazon.com.br/apps/authorize/consent?application_id=amzn1.sp.solution.b4a1cfa0-0909-4bd0-83df-a7ac60c1508&state=stateexample

*Exemplo em modo rascunho (version = beta):
Se você incluir o parâmetro version = beta, o fluxo de trabalho autorizará um aplicativo no estado Rascunho. Se você não incluir o parâmetro, o fluxo de trabalho autoriza um aplicativo publicado na Amazon Partner Network

https://sellercentral.amazon.com.br/apps/authorize/consent?application_id=amzn1.sp.solution.b4a1cfa0-0909-4bd0-83df-a7ac60c1508&state=stateexample&version=beta

Exemplo de URI de retorno configuradas no aplicativo do sellercentral:

1416

📘

O que é o parâmetro 'State' ?

Seu aplicativo usa esse valor para manter o estado entre esta solicitação e a resposta, ajudando a se proteger contra ataques de falsificação de solicitação entre sites.

Importante: como as informações do OAuth são transmitidas por meio de parâmetros de consulta de URL, é altamente recomendável que você faça o seguinte: 1) Certifique-se de que o token de estado tenha vida curta e seja comprovadamente exclusivo para seu usuário e 2) Defina a Política de Referência: no- cabeçalho HTTP de referência, que evita o vazamento de informações confidenciais para sites vinculados ao seu site.

Passo 2. O Seller autoriza a aplicação

  • O Seller acessa a Central do vendedor ou Central do fornecedor, dependendo do tipo de URI de autorização OAuth que você construiu.

  • O Seller visualiza a página de consentimento, analisa o acesso aos dados solicitado por seu aplicativo e clica no botão Confirmar para continuar. O parceiro de vendas pode clicar no botão Cancelar para sair sem autorização.

671

Exemplo da tela de autorização disponibilizada para o Seller

Passo 3. A Amazon envia as informações de autorização

Assim que o Seller autorizou o Integrador, a Amazon exibe brevemente uma página indicando que estamos autorizando você a acessar os dados do parceiro de vendas. Enquanto essa página é exibida, as seguintes ações ocorrem:

A Amazon carrega seu URI de redirecionamento OAuth no navegador (o primeiro que você especificou ao registrar seu aplicativo) adicionando os seguintes parâmetros:

ParâmetroValorExemplo
selling_partner_idO identificador do parceiro de vendas que está autorizando seu aplicativo.A2ZPJ4TLUOSWY8
mws_auth_token (Somente Hybrid Apps)O valor MWSAuthToken que você usa ao criar uma string de consulta para uma chamada para o Amazon Marketplace Web Service.c9SKJGZxKrhdZUzIGVykuaxkz1H6o3X+ZG6QPTCgx
spapi_oauth_codeO código de autorização Login com Amazon (LWA) que você troca por um token de atualização LWAANnLHdeRlPHjFLTDlYl

Exemplo de retorno após a autorização do Seller:

https://af91aa03e9c1.ngrok.io/amazn-authentication?state={STATE}&mws_auth_token={MWS_AUTH_TOKEN}&selling_partner_id={SELLER_ID}&spapi_oauth_code={OAUTH_CODE}

Seu aplicativo valida o campo state

Seu aplicativo salva os valores selling_partner_id, mws_auth_token (se app híbrido) e spapi_oauth_code.

A página do seu site é exibida.

Passo 4 - Sua aplicação troca o código de autorização LWA por um token de atualização

👍

Atenção!

Nesta etapa será realizada a troca do código de autorização LWA (authorization code) para o token de atualização LWA (refresh token).

Nós preparamos um SDK para JavaScript para auxiliar no processo - veja aqui.

Para trocar um código de autorização LWA por um token de atualização LWA:

  1. Sua aplicação chama o servidor de autorização LWA (https://api.amazon.com/auth/o2/token) para a troca. A chamada precisa incluir os parâmetros abaixo:
ParâmetroDescrição
grant_typeO tipo de concessão de acesso solicitada. Deve ser o authorization_code.
codeO authorization code que você recebeu no Passo 3 - Amazon envia a informação de autorização.
redirect_uriO URI de redirecionamento para sua aplicação.
client_idEsse valor faz parte das credenciais de LWA. Obtido no registro da aplicação.
client_secretEsse valor faz parte das credenciais de LWA. Obtido no registro da aplicação.

Exemplo de chamada:

POST /auth/o2/token HTTP/l.l
Host: api.amazon.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=authorization_code&code=SplxlOexamplebYS6WxSbIA&client_id=foodev&client_secret=Y76SDl2F
  1. O servidor de autorização LWA retorna o token de atualização na seguinte resposta em JSON:
HTTP/l.l 200 OK
Content-Type: application/json;
charset UTF-8
Cache - Control: no-store
Pragma: no-cache
{
  "access_token": "Atza|IQEBLjAsAexampleHpi0U-Dme37rR6CuUpSR",
  "token_type": "bearer",
  "expires_in": 3600,
  "refresh_token": "Atzr|IQEBLzAtAhexamplewVz2Nn6f2y-tpJX2DeX"
}
  1. Sua aplicação salva o valor de refresh_token;
  2. O navegador mostra a página que indica os próximos passos para utilizar a sua aplicação.

📘

Nota

O refresh_token não expira, ele é usado para gerar novos access_token.

Este token deve ser incluído em todos os requests para a SP-API no Headers x-amz-access-token, uma vez que o access_token é recebido, ele é válido por uma (1) hora.
Esse token pode ser utilizado para realizar várias chamadas APIs dentro da SP-API, neste período de tempo.

Agora a sua aplicação está autorizada a fazer chamadas na SP-API pelo vendedor!