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 solicitudes POST para API reverse
A continuación, se presenta varios ejemplos de cómo realizar solicitudes POST:
<?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>