Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Para obtener un token de refresco debemos solicitar autorización, aquí explicamos cómo hacerlo.

  • Solicitar autorización con refresh_token

La solicitud es muy similar a la realizada en el paso anterior, se envía un POST a la misma URL: https://a.paypertic.com/auth/realms/entidades/protocol/openid-connect/token

El cuerpo del mensaje debe también debe ser de tipo x-www-form-urlencoded y en el mismo deben ir los siguientes campos: grant_type, client_id, client_secret y agreguearemos uno nuevo, refresh_token.

Debemos completar el campo refresh_token con el valor obtenido en el paso previo y cambiar el valor de grant_type por "refresh_token".

Por ejemplo:

Code Block
curl -X POST \
  https://a.paypertic.com/auth/realms/entidades/protocol/openid-connect/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=refresh_token&client_id=16465308-1844-4abe-abe6-f184149ee740&client_secret=a2d03fa3-f6c4-45e5-9792-dc0d8b51a25c&refresh_token=eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiI1YzBjNmZiOC01NjMwLTQzZDUtYjBlMC1jNzZhNzA1ZjYxY2YiLCJleHAiOjE1NTg4MjYxMDMsIm5iZiI6MCwiaWF0IjoxNTU4ODIzMTAzLCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJlOThlNzYxNC0yMmY5LTRkZWYtYjViNi02ZWE0MTYxNGZlNzQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbXSwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19LCJzaWduYXR1cmUiOiI5OTkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJlbnRpZGFkcHJ1ZWJhIiwiZW1haWwiOiJlbnRpZGFkcHJ1ZWJhQHBheXBlcnRpYy5jb20ifQ.CBZt2zsN3hk_I25d81Q1K_cW_-ZJAwdvfUy_f_RhYVrADf9G4RrqHdZ7M-gCWiML6n--5CH9jn2WsBQa9nxb1ySgUwqWCkdybph1F5mZKi0Q6xWNEhIMqqFbV3Qhi1Jyr87xRDn4tlD28vO6xbPASkjbuGdsRucPQMmbG3XrSZQlDPjOZRCqFNUxweDIxbRgpA-qOPIYPtE-OmcU_tMfSLfjtKWbi3z0SGxhqhWDMPjsL_l6PtxTXQgVZgwwSnHF_mDDxIjk_Q_PibQSSZNnLHlIaZ70qDYLC2bPOrq_j5lPU8WK3W9aYJTxqykAhts9hl_YSugchWFaXlpWiVAMxw&undefined='
  • Respuesta

La respuesta en este caso será igual que la recibida en la solicitud con credenciales, un código HTTP 200 con un JSON como este:

Code Block
{
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiIzMmFhMWMzMy04MTgzLTRkMjYtYWNhYS01ZjQ2MmRkYzA3MDIiLCJleHAiOjE1NTg4MjY2MzQsIm5iZiI6MCwiaWF0IjoxNTU4ODIzNjM0LCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJhMWI0N2M1MC03ZWU0LTQ0MzctOGFjYy04ZTVjZDRlZTQ1YzgiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbXSwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19LCJzaWduYXR1cmUiOiI5OTkiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJlbnRpZGFkcHJ1ZWJhIiwiZW1haWwiOiJlbnRpZGFkcHJ1ZWJhQHBheXBlcnRpYy5jb20ifQ.c6nlTwgbxLiSWNOpTRuO4cCWJ5TyIispsfvfVoR4nczcW0841VMDmvzKJSX92lPdN5opo5zgCftb0Mm9tSpWe4QCtM-UkEP6PfrfNYCvg_GagZIPjbjgLVVuegO534htdEwdw4xStXqRqhb1A7MhKPtiyytUepE378FrHYeAxDPiZMjGDmg3CxhhWPuOVgP-k_RrXpF_fVYUWXeoeYeCYZU_c2uTChGFkyf5yzQkxuBIdNEp6avva69A4pLxQa7y87-ZL0xV0cwrJ68GPInkaw6-elVn-F4qf2gysoaJrjDN8F4qGnI167V5nW3VA8hOeMObRIXeN0Ut4kJ5hVQuJg",
    "expires_in": 3000,
    "refresh_expires_in": 1800,
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJLdnB0T0R6RXdlQUp4LXZVWDc1NFJWVnFlak51NGwtTXUxUE9UbVB4Q1dBIn0.eyJqdGkiOiJiMzFmZTI5ZC05YmI3LTQ2MTUtOTQzMS03YWNlYjllNjgzN2IiLCJleHAiOjE1NTg4MjU0MzQsIm5iZiI6MCwiaWF0IjoxNTU4ODIzNjM0LCJpc3MiOiJodHRwczovL2EucGF5cGVydGljLmNvbS9hdXRoL3JlYWxtcy9lbnRpZGFkZXMiLCJhdWQiOiIxNjQ2NTMwOC0xODQ0LTRhYmUtYWJlNi1mMTg0MTQ5ZWU3NDAiLCJzdWIiOiI0MGZlOTFkNi1mNmQ5LTRmOTMtOWZhOC05MGExYmFiMDllNmEiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiMTY0NjUzMDgtMTg0NC00YWJlLWFiZTYtZjE4NDE0OWVlNzQwIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiYTFiNDdjNTAtN2VlNC00NDM3LThhY2MtOGU1Y2Q0ZWU0NWM4IiwicmVzb3VyY2VfYWNjZXNzIjp7IjE2NDY1MzA4LTE4NDQtNGFiZS1hYmU2LWYxODQxNDllZTc0MCI6eyJyb2xlcyI6WyJjYW5jZWwtc3Vic2NyaXB0aW9uIiwiY3JlYXRlLXN1YnNjcmlwdGlvbiIsImNyZWF0ZS1wYXltZW50IiwidW1hX3Byb3RlY3Rpb24iLCJjYW5jZWwtcGF5bWVudCIsInJldHJ5LXBheW1lbnQiLCJmaWxlLWV4cG9ydCIsImFkbWluaXN0cmF0b3IiLCJyZXF1ZXN0LXJlZnVuZCIsInVwZGF0ZS1wYXltZW50IiwiYXBpLXVzZXIiLCJiYXNlLXVzZXIiLCJ1cGRhdGUtc3Vic2NyaXB0aW9uIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbImFkbWluaXN0cmF0b3IiLCJiYXNlLXVzZXIiLCJ2aWV3LXByb2ZpbGUiXX19fQ.kwqMoqjiljCWKTRG75laf7Gzd_m7qxTMbLPtvqQdPdZrjsXeM8JAR7vR6DhjsA5mOaHYgNrJKZJafmeeeIAKEDNnp4s-6l2uD2v86SwQVzr3wC6s2-kTgt8C_Dw2j7xKGrBsYXV9nCXSO7-AFN0gY_Nn4oPxGWN8skt-9KLqMKog5BJ8Q7yLxHeHV4gYh7729tC-2sSUwHh97O3vo9Fyn_2WKG7gQfc6IS8cy4lXc6MbA1C07K5TbPhg2cG_gOj6KZ8wQHAtDpdnJ1yXFxMWiPUsUw1TvYCwA3aVIgmiyIs8qA1hkc8wDMEWNpY4hnAk5xfDQ97m8REZQQrFf3Pw4w",
    "token_type": "bearer",
    "not-before-policy": 1523907876,
    "session_state": "a1b47c50-7ee4-4437-8acc-8e5cd4ee45c8"
}

Si recibió una respuesta similar significa que la solicitud fue exitosa y puede utilizar access_token para consumir los servicios web de Pay per TIC.

Posibles errores

Code Block
{
    "error": "invalid_grant",
    "error_description": "Invalid refresh token"
}

El servicio no recibió el campo refresh_token. Verificar que el mismo haya sido enviado en la solicitud.


Code Block
{
    "error": "invalid_grant",
    "error_description": "Invalid refresh token"
}

El refresh_token enviado no es válido. Verificar que el valor sea exactamente el mismo obtenido en la solicitud de autorización. En caso de persistir el problema, solicítelo nuevamente.


Info

Si el error que recibe no se encuentra resuelto en este apartado, le rogamos comunicarse con nuestro equipo de soporte.