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
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
-
O Seller entra no seu site de integrador (Se já possui conta faz login ou se é novo cadastra uma nova conta)
-
O Seller clica no botão de autorização e se houver mais de uma região, seleciona a região que deseja autorizar.
-
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:
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.
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âmetro | Valor | Exemplo |
---|---|---|
selling_partner_id | O 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_code | O código de autorização Login com Amazon (LWA) que você troca por um token de atualização LWA | ANnLHdeRlPHjFLTDlYl |
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:
- 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âmetro | Descrição |
---|---|
grant_type | O tipo de concessão de acesso solicitada. Deve ser o authorization_code. |
code | O authorization code que você recebeu no Passo 3 - Amazon envia a informação de autorização. |
redirect_uri | O URI de redirecionamento para sua aplicação. |
client_id | Esse valor faz parte das credenciais de LWA. Obtido no registro da aplicação. |
client_secret | Esse 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
- 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"
}
- Sua aplicação salva o valor de refresh_token;
- 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 novosaccess_token
.Este token deve ser incluído em todos os requests para a SP-API no Headers
x-amz-access-token
, uma vez que oaccess_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!
Updated about 3 years ago