Boton de pago
Cajita de pagos | RecomendadoBotón de pago por redirecciónTokenizaciónSplit de Pagos
Plugins
WoocommercePrestashop
APIs
Links de PagoAPI SalePagos MasivosWebViewNotificación ExternaAPI UserConsulta por LotesPre-registro de comercios
Soporte
visita payphone.app
  • 🔹📎 Cómo funciona Consulta por lotes

  • 🔹⚠️ Consideraciones

  • 🔹🛠️ Implementación

Consulta por lotes Payphone

📎¿Cómo funciona Consulta por lotes Payphone?

La funcionalidad "Consulta por lotes Payphone" permite a los usuarios consultar el historial de transacciones aprobadas dentro de un rango de tres días utilizando una API REST. Esta herramienta facilita la obtención de detalles sobre las transacciones realizadas, lo que ayuda a los comercios a hacer un seguimiento de sus pagos.

🔁 Flujo de Consulta por lotes Payphone

  1. Solicitud: El usuario realiza una solicitud GET a la URL especificada, incluyendo los parámetros start_date y end_date en el formato AAAA-MM-DD. El token de autenticación debe enviarse en el encabezado de la solicitud, con el formato Bearer.
    • Validación: La API valida lo siguiente:
      • La autenticidad del token.
      • El formato y rango de las fechas solicitadas (debe estar dentro del rango permitido: el día actual y hasta dos días anteriores).
      • La cantidad de llamadas realizadas por el token, asegurando que no se excedan las 5 llamadas diarias permitidas.
    • Respuesta:
      • Si se encuentran transacciones dentro del rango de fechas, se devuelve un arreglo con los detalles de las transacciones.
      • Si no hay transacciones, se devuelve un arreglo vacío.
      • En caso de error, se devuelve un objeto que contiene un mensaje descriptivo y detalles adicionales sobre el error.

⚠️Consideraciones

🔐Token de autenticación:

  • El Token debe ser el mismo que generaste para crear las transacciones inicialmente.
  • Este token es necesario para identificar al comercio y garantizar la seguridad de las consultas.
  • Solo se puede consultar transacciones que se generaron con el token específico.

📆Formato de fechas:

  • Las fechas deben estar en el formato AAAA-MM-DD y dentro del rango permitido (el día actual hasta dos días anteriores).

🚧Límite de llamadas:

  • Se permite un máximo de 5 llamadas por día por token de autenticación. Esto se implementa para evitar abusos y asegurar la estabilidad del servicio.

🛠️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:

Nombre

Descripción

Bin

Bin de la tarjeta

brand

Marca de la tarjeta (VISA, MasterCard, etc.)

reserved23

Banco de la tarjeta

errorMessage

Estado de la transacción (Approved)

idTransaction

Id de la transacción

shippingEmail

Correo electrónico del cliente

purchaseAmount

Valor pagado

shippingCountry

País del cliente

shippingLastName

Apellidos del cliente

authorizationCode

Código de autorización

shippingFirstName

Nombre del cliente

paymentReferenceCode

Tarjeta truncada

purchaseCurrencyCode

Tipo de moneda

purchaseOperationNumber

ClientTransactionID - Identificador de tienda

storeId

Identificador de la tienda

dateTransaction

Fecha de la transacción

date

Fecha completa de la transacción

timezone

Zona horaria del pago

cardType

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
        }
    ]
}

Nombre

Descripción

Message

Mensaje de error

errorCode

Código de error

errors

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
JQUERY
FETCH
<?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>
Videos tutorialesPolíticas de privacidadTérminos y condiciones
Copyright © 2024 Payphone | Todos los derechos reservados | Términos y condiciones