Introdução
As API FedEx suportam o método de autenticação OAuth 2.0 (token de portador) para autorizar pedidos de API da aplicação com recursos FedEx. Este token de acesso OAuth tem de ser regenerado após cada 60 minutos e fornecido com cada transação da API para autenticar e autorizar o acesso aos recursos FedEx.
Detalhes da API de Autorização
Esta API permite autorizar pedidos de API e é necessária para autenticar recursos FedEx. A secção seguinte descreve os pré-requisitos da API:
Ao registar-se no FedEx Developer Portal, a FedEx disponibiliza uma combinação de ID de Cliente (Chave de API) e Segredo de Cliente (Chave Secreta) para autenticar os pedidos de API do seu projeto. Cada projeto na sua organização está associado a uma combinação de ID de Cliente e Segredo de Cliente, também designadas por credenciais de API.
Nota: os Clientes (Internos, Compatíveis ou Diretos e Indiretos) podem contactar o representante da FedEx para obter as Chaves Secretas e de API.
Para disponibilizar uma camada adicional de segurança, os clientes FedEx® (Internos, Compatíveis ou Diretos e Indiretos) podem enviar a Chave Subordinada (Segredo de cliente) e o Segredo Subordinado (Palavra-passe de cliente) para além da Chave de API e Chave secreta para criar um token OAuth. Este token é utilizado em cada pedido da API para autenticação.
Pode recriar a Chave Secreta esquecida através da página Projetos no FedEx Developer Portal.
Nota: a criação de novas chaves irá resultar na alteração do código na sua aplicação.
Informações importantes neste documento:
- Chave de Cliente como Chave de API
- Segredo de Cliente como Chave Secreta
- Chave Subordinada como Chave de Cliente
- Segredo Subordinado como Palavra-passe de Cliente
As credenciais de API servem os seguintes propósitos:
- Identificam o projeto que faz uma chamada para as API.
- Autorizam o acesso às API ativadas no âmbito do projeto.
Como obter as Credenciais da API
As credenciais são criadas com base nas entradas no FedEx Developer Portal:
- ID de cliente – a Chave de API (ID de cliente) é criada quando um projeto é criado no FedEx Developer Portal. Também pode ver a Chave de API associada ao projeto na página Descrição Geral do Projeto.
- Segredo de Cliente – verá a Chave Secreta (Segredo de Cliente) na página de confirmação quando um projeto for criado no FedEx Developer Portal. Se necessário, a Chave Secreta também pode ser regenerada, na página Descrição Geral do Projeto.
Nota: os clientes FedEx® (Internos, Compatíveis ou Diretos e Indiretos) têm de enviar a Chave Subordinada (Segredo de Cliente) e o Segredo Subordinado (Palavra-passe de cliente) para além da Chave de API e Chave Secreta para criar o token OAuth. Consulte a API de Registo de Credenciais para saber como obter a Chave Subordinada e o Segredo Subordinado.
Como Funciona a API de Autorização
Autorização de API
Após assegurar as credenciais de API no FedEx Developer Portal, o ponto final OAuth é utilizado para obter um token de acesso que é utilizado como credenciais com cada transação da API.
Estas são as entradas necessárias associadas ao pedido de OAuth:
- grant_type – tipo de cliente. (Valores válidos: client_credentials, csp_credentials, client_pc_credentials)
- client_id – refere-se à Chave de API do Projeto.
- client_secret – refere-se à Chave Secreta de API do Projeto.
Para clientes FedEx® Internos, Compatíveis ou Diretos e Indiretos, envie as entradas adicionais abaixo:
- child_id – Chave de Cliente devolvida através do pedido de API de Registo de Credenciais.
- child_secret – palavra-passe de cliente devolvida através do pedido de API de Registo de Credenciais
O resultado deste pedido deve ser devolvido abaixo:
- access_token – o token OAuth encriptado que tem de ser utilizado na transação da API.
- token_type – tipo de token. Neste caso, é autenticação de portador.
- expires_in – tempo de expiração do token em milissegundos. Uma hora é o tempo de expiração do token padrão.
- Scope – âmbito da autorização fornecida ao consumidor.
Exemplos
Pedido:
POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=your client ID&client_secret=Your secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Pedido para clientes FedEx® Internos ou Compatíveis:
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Pedido para clientes FedEx® Diretos e Indiretos:
POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Nota: o token de acesso expira dentro de uma hora. Pode ser regenerado através de um pedido POST para o ponto final oauth/token.
Response