🛠️Implementación Consulta por lotes
A continuación se describen los detalles técnicos necesarios para realizar la implementación de la consulta por lotes de Payphone.
🔗 Solicitudes GET
Para realizar una consulta por lotes, debes realizar una solicitud GET a la siguiente URL:
https://pay.payphonetodoesposible.com/api/sale/infoPayments
La solicitud debe incluir los siguientes parámetros:
start_date
: Fecha de inicio del rango de consultas (formato AAAA-MM-DD).end_date
: Fecha final del rango de consultas (formato AAAA-MM-DD).
Ejemplo de solicitud:
https://pay.payphonetodoesposible.com/api/sale/infoPayments?start_date=2024-07-01&end_date=2024-07-03
🔐Cabeceras Requeridas
Para ambas solicitudes, se debe incluir las siguientes cabeceras HTTP:
Authorization: bearer TU_TOKEN
(Token de autenticación de la aplicación, precedido por la palabra "Bearer". Este token es el mismo que utilizaste al preparar la transacción inicialmente).Content-type: application/json
(Formato de los datos: JSON).
📬Respuesta a la solicitud GET
La respuesta será un objeto JSON que contiene un arreglo con los detalles de las transacciones dentro del rango de fechas especificado. Los campos devueltos son los siguientes:
[
{
"bin": "517589",
"brand": "Mastercard",
"reserved23": "BANCO PROMERICA, S.A.",
"errorMessage": "Approved",
"idTransaction": 46648332,
"shippingEmail": "eloy@mail.com",
"purchaseAmount": 2.00,
"shippingCountry": "Ecuador",
"shippingLastName": "SOBECK",
"authorizationCode": "W46648332",
"shippingFirstName": "ELISABETH",
"paymentReferenceCode": "517589XXXXXX5006",
"purchaseCurrencyCode": "USD",
"purchaseOperationNumber": "240702-1137-1328",
"storeId": "7af15523-2f35-4666-b935-846167fd6c90",
"dateTransaction": {
"date": "2024-07-02 11:37:37.283000",
"timezone": "-5:00:00"
}
},
{
"bin": "411111",
"brand": "Visa",
"reserved23": "JP Morgan Chase Bank (US)",
"errorMessage": "Approved",
"idTransaction": 46648568,
"shippingEmail": "tmuñoz@mail.com",
"purchaseAmount": 2.00,
"shippingCountry": "Ecuador",
"shippingLastName": "MUNOS",
"authorizationCode": "W46648568",
"shippingFirstName": "TANIA ",
"paymentReferenceCode": "411111XXXXXX1111",
"purchaseCurrencyCode": "USD",
"purchaseOperationNumber": "240703-1140-3955",
"storeId": "7af15523-2f35-4666-b935-846167fd6c90",
"dateTransaction": {
"date": "2024-07-03 11:41:01.903000",
"timezone": "-5:00:00"
}
}
]
📝Descripción de parámetros de respuesta
Una vez la llamada es satisfactoria obtendrás un JSON con los siguientes parámetros:
Marca de la tarjeta (VISA, MasterCard, etc.)
Estado de la transacción (Approved)
Correo electrónico del cliente
ClientTransactionID - Identificador de tienda
Identificador de la tienda
Fecha completa de la transacción
Tipo de tarjeta con la que se realizó el pago
📬Respuesta con error de solicitud GET
En caso de error, la respuesta contendrá un objeto con el siguiente formato:
{
"message": "Validaciones fallidas",
"errorCode": 800,
"errors": [
{
"message": "Rango de fechas debe estar entre 0 y 3 día(s)",
"errorCode": 3121
}
]
}
Arreglo detallando los errores
🧱 Ejemplos de solicitudes GET para API sale/infoPayments
A continuación, se presenta varios ejemplos de cómo realizar solicitudes GET:
<?php
//Funcion q ejecuta una solicitud http GET
function curlPost($urlAPI, $headers) {
//Iniciar solicitud curl: GET
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $urlAPI);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curl_response = curl_exec($curl);
//Finaliza solicitud curl: GET
curl_close($curl);
//Respuesta en formato JSON
return json_decode($curl_response);
}
/*## Preparar credenciales como variables para la solicitud ##*/
$token="your_token";
/*## Preparar informacion del lote ##*/
$start_date="2025-02-12";
$end_date="2025-02-14";
/*## Preparar informacion para la solicitud GET ##*/
//URL del servicio payphone
$url="https://pay.payphonetodoesposible.com/api/sale/infoPayments?start_date=".$start_date."&end_date=".$end_date;
//Cabecera para la solicitud
$headers[] = "Authorization: Bearer ".$token ;//CREDENCIALES DE CONFIGURACION
$headers[] = "Content-Type: application/json" ;//TIPO DE APLICACION
//realizar solicitud http GET
$result=curlPost($url, $headers);
//Mostrar Resultado en Pantalla
echo "<h1>Solicitud GET con PHP</h1>";
echo "<a>GET: <strong>".$url."</strong></a><br><br>";
echo "<a>Fecha de Inicio: <strong>".$start_date."</strong></a><br><br>";
echo "<a>Fecha Final: <strong>".$end_date."</strong></a><br><br>";
echo "Respuesta : <pre>".json_encode($result,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT )."</pre>";
?>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Consulta con jQuery</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<h1>Solicitud GET con jQuery</h1>
<a>Fecha de Inicio: <strong id="start_date"></strong></a><br><br>
<a>Fecha Final: <strong id="end_date"></strong></a><br><br>
<a>GET: <strong id="url"></strong></a><br><br>
<a><strong>Respuesta : </strong></a><pre id="result"></pre>
<script>
/*## Preparar credenciales como variables para la solicitud ##*/
const token="your_token";
/*## Preparar informacion ##*/
const start_date="2025-02-12";
const end_date="2025-02-14";
/*## Cabecera para solicitud ##*/
const headersAPI = {
"Accept-language": "es",
"Authorization": "Bearer "+token
};
//URL del servicio payphone
const urlAPI = "https://pay.payphonetodoesposible.com/api/sale/infoPayments?start_date="+start_date+"&end_date="+end_date;
/*## Mostrar Datos en Pantalla ##*/
document.getElementById("start_date").innerHTML=start_date;
document.getElementById("end_date").innerHTML=end_date;
document.getElementById("url").innerHTML=urlAPI;
/*## Solicitud GET con jQuery ##*/
$(document).ready(function() {
$.ajax({
url: urlAPI,
type: "GET",
headers: headersAPI,
success: function(response) {
$("#result").html(
"<pre>" + JSON.stringify(response, null, 2) + "</pre>"
);
},
error: function(error) {
$("#result").html(
"Error en la solicitud : <pre>" + JSON.stringify(error, null, 2) + "</pre>"
);
}
});
});
</script>
</body>
</html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Solicitud GET con Fetch</title>
</head>
<body>
<h1>Solicitud GET con Fetch</h1>
<a>Fecha de Inicio: <strong id="start_date"></strong></a><br><br>
<a>Fecha Final: <strong id="end_date"></strong></a><br><br>
<a>GET: <strong id="url"></strong></a><br><br>
<a><strong>Respuesta : </strong></a><pre id="result"></pre>
<script>
/*## Preparar credenciales como variables para la solicitud ##*/
const token="your_token";
/*## Preparar informacion ##*/
const start_date="2025-02-12";
const end_date="2025-02-14";
/*## Cabecera para solicitud ##*/
const headersAPI = {
"Accept-language": "es",
"Authorization": "Bearer "+token
};
//URL del servicio payphone
const urlAPI = "https://pay.payphonetodoesposible.com/api/sale/infoPayments?start_date="+start_date+"&end_date="+end_date;
/*## Mostrar Datos en Pantalla ##*/
document.getElementById("start_date").innerHTML=start_date;
document.getElementById("end_date").innerHTML=end_date;
document.getElementById("url").innerHTML=urlAPI;
/*## Solicitud GET con jQuery ##*/
fetch(urlAPI, {
method: "GET",
headers: headersAPI
})
.then((res) => res.json())
.catch((error) => {
const container = document.createElement("div");
const jsonResult = document.createElement("pre");
jsonResult.textContent = JSON.stringify(error, null, 2);
container.appendChild(jsonResult);
document.body.appendChild(container);
})
.then((data) => {
const container = document.createElement("div");
const jsonResult = document.createElement("pre");
jsonResult.textContent = JSON.stringify(data, null, 2);
container.appendChild(jsonResult);
document.body.appendChild(container);
});
</script>
</body>
</html>