API Token de Acceso
Para usar consumir el Api de Orquestador, primero sera necesario consumir el API Token de Acceso.
La forma de autenticación es mediante OAuth. En este caso, Alignet proporcionará un "client_id" y un "client_secret" que deberán utilizarse para la generación del token.
Ambiente | EndPoint | Método |
Desarrollo | POST | |
Pre-Producción | POST | |
Producción | POST |
Headers
Cabecera | Valor | Requerido |
Content-Type | application/json | SI |
ALG-API-VERSION | Versión del API a utilizar. Valores disponibles: 1618440906 | SI??? |
"Content-Type":"application/json"
Request
Parámetro | Tipo | Long. | Descripción | Req. |
action | Cadena | - | La intención del comercio. En este caso es "authorize". | SI |
grant_type | Cadena | - | Tipo de solicitud. Para este caso “password”. | SI |
client_id | Cadena (AN) | 100 | ID asignado al Comercio. Valor proporcionado por Alignet. | SI |
client_secret | Cadena (AN) | 100 | Secret asignado al Comercio. Valor proporcionado por Alignet. | SI |
audience | Cadena | - | Identificador único de las APIs Tokens y Charges a las que se solicita acceso. Valores disponibles: | SI |
username | Cadena (AN) | 100 | Usuario del Comercio que solicita acceso. Valor proporcionado por Alignet. | NO |
password | Cadena (AN) | 100 | Contraseña del Comercio que solicita acceso. Valor proporcionado por Alignet. | NO |
scope | Cadena | - | Lista de permisos que se desea tener con el Access Token. Los valores deben ir separados por espacio. Valores disponibles: create:token post:charges delete:charges offline_access (si se envía, en la respuesta se retorna un Refresh Token) | SI |
{
"action":"authorize",
"grant_type":"password",
"username":"commerce@email.com",
"password":"123456",
"audience":"https://api.dev.alignet.io",
"client_id":"yhaPE3jtHXHMKUZBBFr9QS1x1FaXxr",
"client_secret":"uTCetT3d4T-1NgXyTO66C0850xLJ5c7CwoyXm23NALxZ-MbwQxkqs1Q9ThwWfE",
"scope":"create:token post:charges offline_access"
}
Response
Parámetro | Descripción |
action | Proceso realizado, en este caso es "authorize". |
success | Resultado de la operación: true: Se procesó exitosamente. false: No se procesó exitosamente. |
access_token | Access Token necesario para consumir las APIs. |
refresh_token | Token que permite solicitar nuevos Access Token sin necesidad de enviar Usuario y Contraseña. |
scope | Permisos habilitados para el Access Token. |
expires_in | Tiempo de vida del Access Token en segundos. |
token_type | Tipo de Token, por el momento solo se utiliza “Bearer”. |
authorization.meta.status.code | Código asociado al estado de la operación. Valores disponibles: 00: En caso de éxito 01: En caso de error |
authorization.meta.status.message_ilgn.locale | Configuración del lenguaje usado para el mensaje del status code. |
authorization.meta.status.message_ilgn.value | Mensaje resultante del proceso. |
{
"action":"authorize",
"success":true,
"access_token":"eyJhbGciOiJSUzI1NsInR5cCI6IkpXVCIsImtpZCI6IlVfR2ZLY.........",
"scope":"create:token post:charges offline_access",
"refresh_token":"p11tyL00fVo0EFd68qzQyBEDojWCuG8zyhQCA1B9_zL5zwZ.........",
"expires_in":86400,
"token_type":"Bearer",
"authorization":{
"meta":{
"status":{
"code":"00",
"message_ilgn":[
{
"locale":"es_PE",
"value":"Access Token creado"
}
]
}
}
}
}
To obtain the token you should call the endpoint https://auth.wip.alignet.io/token as in the following example:
import requests import json
url = "https://auth.wip.alignet.io/token"
payload = json.dumps({ "action": "authorize",
"grant_type": "client_credentials", "audience": "https://api.dev.alignet.io",
"client_id": "z8WwAV7rd2jCU0SivwtQVv941kqZcEou",
"client_secret": "Rlz8td8ppm1Z1tpxsozWze7wR4p2rEFsfL32qAlznzuABiOqzPMx0bWl0nHjZBzr", "scope": "create:token post:charges"
})
headers = {
'ALG-API-VERSION': '1618440906',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
This will in turn give a response like so:
{
"action": "authorize", "success": true, "access_token":
"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IlVfR2ZLYkNmUUhSRjJpYjA4cVdsdCJ9.ey Jpc3MiOiJodHRwczovL2Rldi1ocTBjZHBrai51cy5hdXRoMC5jb20vIiwic3ViIjoiYkNYblM4dGpVa mJpN0pZNFVBbWxwNUFqSDg4RUNOVk5AY2xpZW50cyIsImF1ZCI6Imh0dHBzOi8vOGVmdGd waDlrYS5leGVjdXRlLWFwaS51cy1lYXN0LTEuYW1hem9uYXdzLmNvbSIsImlhdCI6MTY1MDQy NjgyOCwiZXhwIjoxNUwNTEzMjI4LCJhenAiOiJiQ1huUzh0alVqYmk3Slk0VUFtbHA1QWpIODh FQ05WTiIsInNjb3BlIjoiY3JlYXRlOnRva2VuIGFwaS10ZXN0OmNyZWF0ZTp0b2tlbiIsImd0eSI6I mNsaWVudC1jcmVkZW50aWFscyJ9.oZfuf7Kemi6PWHovWeiVWPnhAfLTZ5QiIJboJxyKlkmv 1nq- 4qjTH3xLH0EFEa3dRqcvWHFmgciR1VG7y6EAbBrpOTnBpPUNDqiba7aZUSgOMCAEqHs_QCf2 iyKXKxys7oWLNLhmo84pP5zPMiZD3sCdHfy_LzsolfMFiEmwAo3HHZftThRq- 6QMO8jGDR38Sl5jbKP- 1JnP5W4hu0Uo6NrnK4dzLIf7uxzRHlnETwbvgLcBZOFfVuOzOn- 16voDo80842y4DlKG5wAi3L6RBRsxfTs_4_bzEhn3AA2ARGbFSkDcfk64ct2C9ox98s9mxTUe10 SJFeD 50txlXoPDPA",
"scope": "create:token api- test:create:token", "expires_in": 86400, "token_type":
"Bearer", "authorization": {
"meta": {
"status": {
"code":
"00",
"message_ilgn": [
{
"locale": "es_PE",
"value": "Access Token creado"
}
}
}
}
}
De esta respuesta, el usuario debe extraer el valor del "access_token" y utilizarlo en todas las solicitudes posteriores en el encabezado HTTP de autorización.
El usuario debe actualizar el token en el tiempo indicado por el elemento "expires_in".