Pasarela tpv Redsys Caixa
Autor: Marta S.
Visitado 936,
Followers 1,
Compartido 0
Hola a Todos,
Llevo ya muchos años intentando que el número de pedido que establece Website cuando el cliente realiza la compra en el carrito, sea el mismo que genera TPV Caixa cuando nos envía el correo confirmando que la operación ha sido aprobada. Teoricamente debería respetarse ya en archivo TPV y en la configuración de website se indica el campo de ORDER, pero no funciona.
Os envío los parámetros que tenemos en TPV.php , a mi ya no se me ocurre nada...
Os agradezco de antemano vuestra ayuda,
Muchas gracias
Publicado en
Hola Marta
Aunque WebSite X5 permite insertar códigos personalizados, algunos códigos personalizados pueden ser particularmente complejos y requerir cierto conocimiento de los códigos para implementarlos correctamente.
Desafortunadamente, el personal no puede brindar soporte para la integración de códigos personalizados. Depende totalmente del usuario proceder a implementar su código y asegurarse de que funcione dentro de la infraestructura del software.
Por este motivo me temo que el apoyo que puedo brindarles en este asunto es muy limitado, lo siento
Sin embargo, permanezco disponible en caso de que tengas algún otro problema con el que pueda ayudarte.
https://guide.websitex5.com/en/support/solutions/articles/44002275655
Gracias por su comprensión
estefano
Buenas noches Marta.
en el codigo tienes la variable "$order1" que es el numero de pedido generado por website, que se lee con el GET, pero al momento de cursarlo esta variable no existe porque tienes declarada "$order" añadele el 1 cambiandola en la linea que te marco con flecha amarilla y creo que entonces la pasarela te mantendra el numero de pedido de website.
Ya nos contarás.
Saludos
Antonio
Autor
Hola Antonio!!
Muchas gracias por haberte tomado tu tiempo para revisarlo. De verdad.
No me ha funcionado pero igualmente te lo agredezco muchísimo.
Saludos
Hola de nuevo. Debe de pasar que las variables no son de sesion y no mantienen su valor.
te adjunto el codido que uso y prueba. solo tendras que cambiar los valores xxxxxxx y poner en los links las paginas de exito o fracaso del pago por los nombres que tu tienes.
Te adjunto tambien el codigo de la forma de pago para que lo pruebes ya que el nombre de mis variables son distintas a las tuyas.
Probar es barato!!
codigo para poner en la forma de pago al crear el boton:
<form method="post" action="https://www.midominio.com/tpv.php">
<input type=hidden name=numPedido value="[ORDER_NO]">
<input type=hidden name=total value="[PRICE]">
<input type="submit" name="Submit" value="PAGAR CON TARJETA">
</form>
CODIGO PARA CREAR EL tpv.php.
<?php
include 'apiRedsys.php';
if (isset($_REQUEST['numPedido'])) {
$iid = $_REQUEST['numPedido'];
$amount = str_replace(".", "", str_replace(",", "", number_format($_REQUEST['total'], 2)));
} else {
$iid = $_REQUEST['numPedido'];
$amount = str_replace(".", "", str_replace(",", "", number_format($_REQUEST['total'], 2)));
}
session_start();
$_SESSION['numPedido'] = $iid;
$_SESSION['total'] = $amount;
// Se crea Objeto
$miObj = new RedsysAPI;
// Valores de entrada
$fuc = "XXXXXXXXX";
$terminal = "xxx";
$moneda = "978";
$trans = "0";
$url = 'https://www.tudominio.com/exito.php'
$urlOKKO = "https://www.tudominio.com/exitoKO.php";
// Se Rellenan los campos
$miObj->setParameter("DS_MERCHANT_AMOUNT", $amount);
$miObj->setParameter("DS_MERCHANT_ORDER", strval($iid));
$miObj->setParameter("DS_MERCHANT_MERCHANTCODE", $fuc);
$miObj->setParameter("DS_MERCHANT_CURRENCY", $moneda);
$miObj->setParameter("DS_MERCHANT_TRANSACTIONTYPE", $trans);
$miObj->setParameter("DS_MERCHANT_TERMINAL", $terminal);
$miObj->setParameter("DS_MERCHANT_MERCHANTURL", $url);
$miObj->setParameter("DS_MERCHANT_URLOK", $url);
$miObj->setParameter("DS_MERCHANT_URLKO", $urlOKKO);
// Datos de configuración
$version = "HMAC_SHA256_V1";
$kc = 'xxxxxxxxxxxxxxxxxxx'; // Clave recuperada de CANALES
// Se generan los parámetros de la petición
$request = "";
$params = $miObj->createMerchantParameters();
$signature = $miObj->createMerchantSignature($kc);
?>
<h2>Importe total: <?php echo htmlspecialchars(isset($_REQUEST['total']) ? number_format($_REQUEST['total'], 2) : number_format($_REQUEST['total'], 2)); ?> €</h2>
<?php
echo '
<form name="formPago" id="formPago" action="https://sis.redsys.es/sis/realizarPago" method="POST" target="_self">
<input type="hidden" name="Ds_SignatureVersion" value="' . $version . '"/><br />
<input type="hidden" name="Ds_MerchantParameters" value="' . $params . '"/><br />
<input type="hidden" name="Ds_Signature" value="' . $signature . '"/><br />
<img src="tarjetas_tpv.gif" width="188" height="30" /><br /><br />
<div align="center"><input type="submit" value="Realizar Pago" ></center>';
?>
A mi me funciona bien, tambien te adjunto al post el gif con las tarjetas para el boton.
Prueba y nos cuentas.
Un cordial saludo
Antonio
Autor
¡¡¡¡¡Muchísimas gracias!!!!