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 comerciosCatálogo de Errores
Soporte
visita payphone.app
  • 🔹📎 Cómo funciona el reverso

  • 🔹⚠️ Consideraciones

  • 🔹🛠️ Implementación de API Reverse

  • 🔹📈 Reverso con Payphone business

Reversar Pago Payphone

📎¿Cómo funciona el reverso de transacción?

El reverso de una transacción en el sistema Payphone permite revertir una transacción previamente realizada, devolviendo los fondos a la cuenta original del cliente. Este proceso es útil en casos de transacciones erróneas o solicitudes de reembolso. Sin embargo, el reverso solo puede ser realizado bajo ciertas condiciones y dentro de un marco de tiempo limitado.

🔁Flujo del Método de reverso

  1. Identificación de la transacción: El reverso debe ser realizado usando un identificador único que corresponde a la transacción original. Este identificador puede ser el ID de Payphone o el ID otorgado por el comercio.
  2. Ejecución del reverso: Una vez que se haya validado que se cumplen las condiciones, el reverso puede ser ejecutado utilizando uno de los dos métodos proporcionados por el API de Payphone, según el tipo de identificador disponible.

⚠️Consideraciones

🔐Token de autenticación:

  • El token utilizado para crear la transacción original debe ser el mismo token que se use para realizar el reverso. ¡Este punto es fundamental! Si no se utiliza el mismo token, la transacción de reverso no se procesará correctamente.

⏳Límite de tiempo:

  • El reverso solo puede ser solicitado el mismo día de la transacción, hasta las 20:00 horas EC. Pasado este tiempo, no se podrá realizar la operación de reverso.

↩️Reverso Automático : Para boton o cajita de pagos

  • ¿Cómo funciona? Si realizan un pago con botón o cajita de pagos Payphone, y el comercio no confirma la transacción en 5 minutos, el sistema automáticamente reversa el pago.
  • ¿Por qué 5 minutos? Este tiempo permite que los sistemas del comercio envíen la confirmación. Si no la envían, el pago se revierte para evitar cobros indebidos.
  • ¿Qué significa esto para ti? Seguridad y tranquilidad. Si un pago no se confirma, no se cobrará."

🛠️Implementación del API Reverse

Se ofrecen dos métodos para realizar el reverso, dependiendo del identificador disponible:

🧩Reverso con ID de Payphone

En este caso, se debe utilizar el ID de Payphone correspondiente a la transacción que se desea revertir.

🔗 URL de la solicitud POST:

https://pay.payphonetodoesposible.com/api/Reverse

📦Cuerpo de la solicitud (JSON):

id: El ID de la transacción de Payphone. Este valor es proporcionado al realizar la transacción transactionId.

{
  "id": 33107661  // ID de la transacción payphone
}

‍

🧩Reverso con ID otorgado por el comercio

En este caso, se utiliza el ID otorgado por el comercio a la transacción (clientTransactionID).

🔗 URL de la solicitud POST:

https://pay.payphonetodoesposible.com/api/Reverse/Client

📦Cuerpo de la solicitud (JSON):

clientId: El ID que el comercio asignó a la transacción clientTransactionId.

{
  "clientId": "200-628-77"  // ID otorgado por el comercio a la transacción
}

🔐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 POST

  • ✅ Respuesta exitosa: Si el reverso se realizó correctamente, la respuesta será un valor booleano:
true
  • ❌ Respuesta fallida: Si el reverso no se puede realizar, se devolverá un objeto JSON con un mensaje de error y un código de error:
{
    "message": "La transacción no existe, verifique que el identificador enviado sea correcto.",
    "errorCode": 20
}

Este mensaje de error indica que el identificador proporcionado no es válido o no corresponde a una transacción existente. Es importante verificar que se esté utilizando el identificador correcto antes de intentar el reverso nuevamente.

🧱 Ejemplos de solicitud POST para API Reverse

A continuación, se presenta varios ejemplos de cómo realizar solicitudes POST:

PHP
JQUERY
FETCH
<?php
    //ID de la transacción de payphone. Valor proporcionado al realizar la transacción transactionId.
    $id = 33107661;

    //Preparar cabecera para la solicitud
    $headers[] = 'Authorization: Bearer your_token' ;//CREDENCIALES DE CONFIGURACION
    $headers[] = 'Content-Type: application/json' ;//TIPO DE APLICACION 

    //Preparar objeto JSON para solicitud
    $data = array(
        "id" => (int)$id
    );
    $objetoJSON = json_encode($data);

    //Iniciar solicitud curl: POST 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "https://pay.payphonetodoesposible.com/api/Reverse");
    curl_setopt($curl, CURLOPT_POST, 1);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $objetoJSON);    
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //Respuesta en formato JSON
    $curl_response = curl_exec($curl);
    //Finaliza solicitud curl: POST
    curl_close($curl);


    //Mostrar Resultado en Pantalla
    echo "<h1>Prueba Reverso de Transaccion</h1> <br>";

    $result= json_decode($curl_response);
    echo "Respuesta : <pre>".json_encode($result,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT )."</pre>";
?>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <title>Reverso con jQuery</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>   
        <script>  
            var id=33107661;

            $(document).ready(function() {
                $.ajax({
                    url: "https://pay.payphonetodoesposible.com/api/Reverse",
                    type: "POST",
                    headers: {
                    	"Content-Type": "application/json",
                    	"Authorization": "Bearer your_token"
                    },
                    data: JSON.stringify({ 
                        "id": id
                    }),
                    success: function(response) {
                        $("#resultado").html(
                            "Respuesta : <pre>" + JSON.stringify(response, null, 2) + "</pre>"
                        );
                    },
                    error: function(error) {
                        $("#resultado").html(
                            "Error en la solicitud : <pre>" + JSON.stringify(error, null, 2) + "</pre>"
                        );
                    }
                });
            });
        </script>
    </head>    
    <body>
        <h1>Ejemplo de Solicitud POST con jQuery</h1>
        <div id="resultado"></div>
    
    </body>
</html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <title>Reverse con Fetch</title> 
        <script>            
            const id=33107661;

            const  headers = {
                "Content-Type": "application/json",
                "Authorization": "Bearer your_token",
                "Referer": document.referrer
            };

            const bodyJSON = { 
                "id": id
            };

            const  url = "https://pay.payphonetodoesposible.com/api/Reverse";

            fetch(url, {
                method: "POST",
                headers: headers,
                body: JSON.stringify(bodyJSON)
            })
            .then((res) => res.json())
            .catch((error) => {
                // Creamos la etiqueta <pre> que contiene el error
                const jsonResult = document.createElement("pre");
                jsonResult.textContent = JSON.stringify(error, null, 2);

                // Agregar etiqueta <pre> al <div>
                const container = document.createElement("div");
                container.appendChild(jsonResult);

                // Agregar la respuesta al body del documento o a un contenedor específico
                document.body.appendChild(container);
            })
            .then((data) => {

                // Creamos las etiquetas <pre>
                const jsonResult = document.createElement("pre");
                jsonResult.textContent = JSON.stringify(data, null, 2);

                // Agregamos la respuesta a un div
                const container = document.createElement("div");
                container.appendChild(jsonResult);

                // Mostramos los elementos en la pagina
                document.body.appendChild(container);
            });  
        </script>
    </head>    
    <body>
        <h1>Reverso de Transaccion con Fetch</h1>   
    </body>
</html>

📈Reverso con Payphone Business

El proceso de reversos desde Payphone Business se realiza de la siguiente manera:

1️⃣ Acceso al Menú de Ventas:

  • Ingrese a la plataforma de Payphone Business y diríjase al Menú de Ventas.
  • En este menú, se mostrarán todas las transacciones realizadas.

2️⃣ Selección de la Transacción a Reversar:

  • Localice la transacción que desea reversar (anular).
  • En la columna de acciones, seleccione la opción Anular asociada a la transacción correspondiente.

3️⃣ Confirmación de la Anulación:

  • Al hacer clic en la opción Anular, aparecerá un mensaje de confirmación en la pantalla que solicita verificar si está seguro de anular la transacción seleccionada, mostrando el número de transacción.
  • Se le presentarán dos opciones: Sí (para confirmar) y No (para cancelar la operación).

⚙️Procedimiento según el Método de Pago:

  • 💳Pago con Tarjeta: Si el pago original fue realizado con tarjeta de crédito o débito, el sistema solicitará que ingrese el número de tarjeta utilizada en la transacción.
  • 📱Pago con Payphone: Si el pago se efectuó a través del aplicativo Payphone personal, el sistema enviará una notificación al aplicativo del cliente para aceptar o rechazar el reverso.

🏁Resultado de la Acción:

  • ✅Si la acción es aprobada, ya sea por el ingreso correcto del número de tarjeta o por la aceptación de la notificación móvil, se mostrará el mensaje "Anulación Aprobada" en la pantalla.
  • ❌Si la acción es rechazada o no se completa correctamente (por ejemplo, si se ingresa un número de tarjeta incorrecto o si la notificación no es aceptada en la app), aparecerá el mensaje "Anulación Cancelada".

♻️Actualización del estado de la transacción:

  • Una vez aprobada la anulación, el estado de la transacción se actualizará en el sistema.
  • El monto reversado se reflejará en el saldo de la cuenta correspondiente, según las políticas de Payphone.
Videos tutorialesPolíticas de privacidadTérminos y condiciones
Copyright © 2024 Payphone | Todos los derechos reservados | Términos y condiciones