search

Integración avanzada

Las siguientes características son opcionales y las podés utilizar en tus integraciones.

Para hacer un uso correcto de la API consultar base_url en la sección Ambientes/Checkout.

Monto del envío

Al crear una orden desde el endpoint api/v2/orders, tenes la posibilidad de sumar el costo del envío y mostrarlo como un ítem dentro del detalle de elementos.

Configuración

Para configurarlo, basta con agregar el nodo shipping con el nombre name y el sub nodo price con el valor del monto del envío y la moneda a utilizar.

"shipping": {
    "name": "Envio por Correo Argentino",
    "price": {
        "currency": "032",
        "amount": 601
    }
}

Detalles

Field NameDetails
nametype="string", length=63, nullable=true
currencytype="string", length=3, nullable=false
amounttype="integer"

Ejemplo

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{base_url}/api/v2/orders',
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "data": {
        "attributes": {
            "currency": "032",
            "items": [
                {
                    "id": 1,
                    "name": "Chicken roll",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 110000
                    },
                    "quantity": 1
                },
                {
                    "id": 3,
                    "name": "Porto cheese burger",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 120000
                    },
                    "quantity": 2
                }
            ],
            "shipping": {
                "name": "Envio por Correo Argentino",
                "price": {
                    "currency": "032",
                    "amount": 15000
                }
            }
        }
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
    'Authorization: Bearer {reemplazar_por_jwt}'
  ),
));

$response = curl_exec($curl);

$order = json_decode($response);

curl_close($curl);

URL de retorno

Al finalizar el proceso de pago, tienes la opción de redireccionar al comprador tanto para pagos aprobados como para pagos rechazados.

Configuracion

Esta característica da la opción de sumar el nodo redirect_urls y definir dentro un link para success y un link para failed.

"redirect_urls": {
    "success": "https://www.mitienda.com/success",
    "failed": "https://www.mitienda.com/failed"
}

Detalles

Field NameDetails
successtype="string", length=255, nullable=true
failedtype="string", length=255, nullable=true

Ejemplo

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{base_url}/api/v2/orders',
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "data": {
        "attributes": {
            "currency": "032",
            "items": [
                {
                    "id": 1,
                    "name": "Chicken roll",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 110000
                    },
                    "quantity": 1
                },
                {
                    "id": 3,
                    "name": "Porto cheese burger",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 120000
                    },
                    "quantity": 2
                }
            ],
            "redirect_urls": {
                "success": "https://www.mitienda.com/success",
                "failed": "https://www.mitienda.com/failed"
            }
        }
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
    'Authorization: Bearer {reemplazar_por_jwt}'
  ),
));

$response = curl_exec($curl);

$order = json_decode($response);

curl_close($curl);

Webhook URL

Sirve para que al momento de finalizar un pago, notifiquemos el estado del mismo.

Configuracion

Simplemente agregar la key webhookUrl en la raíz de attributes y colocar la URL al cual enviaremos la notificación.

"webhookUrl": "https://www.google.com/?q=soyunhook"

Detalles

Field NameDetails
webhookUrltype="string", length=255, nullable=true

Ejemplo

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{base_url}/api/v2/orders',
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "data": {
        "attributes": {
            "currency": "032",
            "items": [
                {
                    "id": 1,
                    "name": "Chicken roll",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 110000
                    },
                    "quantity": 1
                },
                {
                    "id": 3,
                    "name": "Porto cheese burger",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 120000
                    },
                    "quantity": 2
                }
            ],
            "redirect_urls": {
                "success": "https://www.mitienda.com/success",
                "failed": "https://www.mitienda.com/failed"
            },
            "webhookUrl": "https://webhook.com",
        }
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
    'Authorization: Bearer {reemplazar_por_jwt}'
  ),
));

$response = curl_exec($curl);

$order = json_decode($response);

curl_close($curl);

Ejemplo de POST al WebHook


{ "data": { "type": "Payment", "order": { "uuid": "ea138a99-c9df-44a5-b2bf-09e5db6f8d0c", "status": "SUCCESS", "source": "app_payment_link" }, "payment": { "id": 1823, "authorizationCode": "901159", "refNumber": "62b4a8ff60fee", "status": "APPROVED" } } }

expireLimitMinutes

Establece un tiempo limite para realizar el pago. Una vez vencido dicho tiempo, el pago ya no podrá realizarse.

Configuracion

Agregar la key expireLimitMinutes en la raíz de attributes y colocar el valor expresado en minutos.

"expireLimitMinutes": 14400

Detalles

Field NameDetails
expireLimitMinutestype="integer"

Ejemplo

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{base_url}/api/v2/orders',
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "data": {
        "attributes": {
            "currency": "032",
            "items": [
                {
                    "id": 1,
                    "name": "Chicken roll",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 110000
                    },
                    "quantity": 1
                },
                {
                    "id": 3,
                    "name": "Porto cheese burger",
                    "unitPrice": {
                        "currency": "032",
                        "amount": 120000
                    },
                    "quantity": 2
                }
            ],
            "expireLimitMinutes": 14400,
        }
    }
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/vnd.api+json',
    'Accept: application/vnd.api+json',
    'Authorization: Bearer {reemplazar_por_jwt}'
  ),
));

$response = curl_exec($curl);

$order = json_decode($response);

curl_close($curl);

Soporte para desarrolladores consultas@viumi.com.ar Powered By GeoPagos