Integración de Checkout
Integración de Checkout
Para realizar una integración de pago con redireccionamiento, es necesario seguir los siguientes pasos:
- Autenticación de servicios
- Registrar checkout
- Redireccionamiento al checkout de pago
- Redireccionamiento de éxito o cancelación
1.- Autenticación de servicios
Deberás de copiar las credenciales de acceso al API, para llamar al servicio de autenticación de OrkestaPay y obtener un token de acceso que se utilizará para llamar al resto de servicios.
Petición hacia el servicio
Después de copiar las credenciales, deberás de buscar los textos REPLACE_WITH_YOUR_CLIENT_ID
y REPLACE_WITH_YOUR_CLIENT_SECRET
en el script de abajo y reemplazarlos con los valores copiados para poder ejecutar la llamada al servicio mediante shell:
client_id
: Llave de accesoclient_secret
: Llave secreta
Tipo de permisos
La propiedad grant_type
siempre se deberá de llevar el valor client_credentials
, dado que es el modelo de funcionamiento del protocolo oAuth 2.0 que utiliza OrkestaPay para autenticar los servicios.
curl --request POST \
--url https://api.sand.orkestapay.com/v1/oauth/tokens \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '
{
"client_id": "REPLACE_WITH_YOUR_CLIENT_ID",
"client_secret": "REPLACE_WITH_YOUR_CLIENT_SECRET",
"grant_type": "client_credentials"
}
'
Respuesta del servicio
Como resultado de la llamada al servicio de autenticación se regresará un token JWT, el cual se utilizará en todos los siguientes llamados a los servicios del API de OrkestaPay.
{
"token_type": "Bearer",
"expires_in": 1800,
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIwenJMTnEwbzBab1R4NTlaeWVPaTI1RGxZLWl6cV91SVFSLThWS0RaWjlFIn0.eyJleHAiOjE2Njk4NTAzNTAsImlhdCI6MTY2OTg1MDE3MCwianRpIjoiMWI4MWZhMDItMzk2ZC00NGNjLWJlMzctZGU4ZWQyODg2MTEyIiwiaXNzIjoiaHR0cHM6Ly9kZXYtYXV0aC56ZW5raS5maS9hdXRoL3JlYWxtcy9wYnciLCJzdWIiOiIxMjgyNjJhOS00NDgxLTQ4OGItYTczNi1iNmI5MTA1NjQ4MzQiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiI1MDg3ODE3MDhjNzk5MTE5NTJkZGJlYWZkZjM5NjNmNTcxYjNjYzE4YzE5YmNkY2YiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbImh0dHBzOi8vcG9ydGFsLWRldi56ZW5raS5maSJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiYXBpIiwiYXBpX3plbmtpcGF5Il19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImNsaWVudEhvc3QiOiIzNS44NS4yMy4xOTAiLCJjbGllbnRJZCI6IjUwODc4MTcwOGM3OTkxMTk1MmRkYmVhZmRmMzk2M2Y1NzFiM2NjMThjMTliY2RjZiIsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC01MDg3ODE3MDhjNzk5MTE5NTJkZGJlYWZkZjM5NjNmNTcxYjNjYzE4YzE5YmNkY2YiLCJjbGllbnRBZGRyZXNzIjoiMzUuODUuMjMuMTkwIn0.Ds5eQ-tkn4ckTUHI-mrJn6eYBaUa-6uZNxzrGRfYc5neI1TvB2RHu_IDsktDVi9XdR5P_P0mSpzar9jWJOrxxA_csTnn9ZXy8rDeRqjMm9j03xWz-tZcxiUM6xvN1qvOeBGFzISIP9y24jyL0Jqpl8YhkSGF8xBfFvfhOvEMvgLby5n7dTDoZVi2Bw8G1kZJKPejmBu8MJetl08OoVk_obp6lW3YetQPYTwsutOc_yIxBIUkPSH2Gj3wpBxBa8EfMES4J1SAT7Thpw_CmZ_PNB9rEDUJI4bzE7QM2Z0n4LNXzbo5JFuWudKwfhqOcryH0slmHOamJgbtR5EGryf8LQ"
}
2.- Registrar checkout
Después de obtener el token de acceso, se deberá registrar un checkout llamando el servicio de crear checkout en el API de OrkestaPay.
Petición hacia el servicio
Se deberá llamar al servicio de "crear checkout" y como parte de la petición, se deberá de enviar un par de URL’s que servirán para redireccionar al comprador una vez que se haya completado el pago (REPLACE_WITH_YOUR_SUCCESS_URL
), o bien que éste haya sido cancelado (REPLACE_WITH_YOUR_CANCEL_URL
). Adicional se debe de enviar la cabecera Authorization
y como valor el access_token
obtenido en el paso 1.
Deberás de buscar el texto REPLACE_WITH_YOUR_ACCESS_TOKEN
en el script de abajo y reemplazar con el token JWT.
curl --request POST \
--url https://api.sand.orkestapay.com/v1/checkouts \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer REPLACE_WITH_YOUR_ACCESS_TOKEN' \
--data '
{
"completed_redirect_url": "REPLACE_WITH_YOUR_SUCCESS_URL",
"canceled_redirect_url": "REPLACE_WITH_YOUR_CANCEL_URL",
"allow_save_payment_methods": false,
"locale": "ES_LATAM",
"order": {
"merchant_order_id": "1366656595193",
"currency": "MXN",
"subtotal_amount": 1000,
"country_code": "MX",
"discounts": [
{
"amount": 10
}
],
"total_amount": 990,
"products": [
{
"id": "7197",
"name": "Pantalla TCL Smart TV Serie A3 A343 HD Android TV 40",
"quantity": 1,
"unit_price": 1000
}
],
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
}
}
}
'
Respuesta del servicio
Al registrar un checkout, se regresará la siguiente información. Por el momento y para fines del ejemplo, solo será de interés el checkout_redirect_url
.
{
"checkout_id": "chk_e69283cb55814402b9372a2f834cc8a8",
"checkout_redirect_url": "https://checkout.dev.orkesta.io/#/checkout/chk_e69283cb55814402b9372a2f834cc8a8/6f2d8077c669f0512cb655c1f2d19b3cc020f5fd8b17152e0d3de675575e8f69",
"completed_redirect_url": "https://example.com/complete",
"canceled_redirect_url": "https://example.com/cancel",
"allow_save_payment_methods": false,
"locale": "ES_LATAM",
"placed_at": "1713480514319",
"order": {
"order_id": "ord_a73c91e6f6f949a3a39c9557f353d308",
"status": "CREATED",
"expires_at": "1713566914212",
"merchant_order_id": "1366656595193",
"country": "México",
"country_code": "MX",
"currency": "MXN",
"taxes": [],
"discounts": [
{
"amount": 10
}
],
"subtotal_amount": 1000,
"total_amount": 990,
"products": [
{
"product_id": "7197",
"quantity": 1,
"unit_price": 1000,
"name": "Pantalla TCL Smart TV Serie A3 A343 HD Android TV 40"
}
],
"customer": {
"customer_id": "cus_414bae1120844159bf10f1d6c7b30d74",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"created_at": "1713480514197",
"updated_at": "1713480514197"
},
"placed_at": "1713480514267",
"metadata": {}
}
}
3.- Redireccionamiento al checkout de pago
Después de registrar el checkout, redireccionar al comprador a la URL del checkout de pago donde podrá finalizar su compra.
El diseño del checkout se puede personalizar con la marca y branding de tu comercio, esta personalización se configura desde el dashboard de OrkestaPay.
4.- Redireccionamiento de éxito o cancelación
El comprador tendrá la opción de cancelar y volver a la tienda (canceled_redirect_url
) o completar el pago donde al finalizar, será redireccionado a la URL indicada durante el proceso de registro de checkout (completed_redirect_url
). La siguiente imagen es únicamente ilustrativa.
NOTA: Es recomendable que en este par de URLs, se proporcionen parámetros que permitan a tu integración gestionar el comportamiento y estatus del pedido/orden de compra.
Updated 6 days ago