Foros del Web » Programando para Internet » PHP »

Pasarela de pago de Redsys

Estas en el tema de Pasarela de pago de Redsys en el foro de PHP en Foros del Web. Buenos días, tengo un pequeño problema, llevo poco tiempo trabajando con pasarelas de pago y no se si la tengo bien configurada. Código PHP: $form ...
  #1 (permalink)  
Antiguo 04/07/2014, 03:53
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Pasarela de pago de Redsys

Buenos días, tengo un pequeño problema, llevo poco tiempo trabajando con pasarelas de pago y no se si la tengo bien configurada.


Código PHP:
$form='
            <link rel="stylesheet" href="http://quality-courses.com/test/content/templates/bootstrap.css" media="screen">
            <link rel="stylesheet" href="http://quality-courses.com/test/content/templates/css/bootswatch.min.css">
            <div id="paso_tpv" class="col-md-12" style="margin-left: auto; margin-right: auto;  text-align: center;">
            <form id="tpv_vars" action="'
.$sis_url.'" method="POST">
            
                
                <input type="hidden" name="total_payment" id="total_payment" style="margin:0px;padding:3px;border:1px inset;" value="'
.$amount.'">
                <input type="hidden" name="Ds_Merchant_Amount" id="merchant_amount" style="margin:0px;padding:3px;border:1px inset;" value="'
.$amount.'">
                <input type="hidden" name="Ds_Merchant_Currency" id="ptc-gen139" style="margin:0px;padding:3px;border:1px inset;" value="'
.$currency.'">
                <input type="hidden" name="Ds_Merchant_Order" id="merchant_order" style="margin:0px;padding:3px;border:1px inset;" value="'
.$order.'">
                <input type="hidden" value="'
.$m_code.'" name="Ds_Merchant_MerchantCode" id="ptc-gen148" style="margin:0px;padding:3px;border:1px inset;">
                <input type="hidden" name="Ds_Merchant_TransactionType" id="ptc-gen149" style="margin:0px;padding:3px;border:1px inset;" value="'
.$m_transaction_type.'">
                <input type="hidden" name="Ds_Merchant_Terminal" id="ptc-gen154" style="margin:0px;padding:3px;border:1px inset;" value="'
.$m_terminal.'">
                <input type="hidden" name="Ds_Merchant_MerchantURL" id="ptc-gen159" style="margin:0px;padding:3px;border:1px inset;" value="'
.$m_return_url.'">
                <input type="hidden" name="Ds_Merchant_MerchantSignature" id="merchant_signature" style="margin:0px;padding:3px;border:1px inset;" value="'
.$signature.'">
                <input type="hidden" name="Ds_Merchant_ConsumerLanguage" id="ptc-gen168" style="margin:0px;padding:3px;border:1px inset;" value="'
.$consumer_lang.'">
                <input type="hidden" name="Ds_Merchant_MerchantName" id="ptc-gen173" style="margin:0px;padding:3px;border:1px inset;" value="'
.$m_commerce_name.'">
                <input type="hidden" name="Ds_Merchant_UrlOK" id="ptc-gen178" style="margin:0px;padding:3px;border:1px inset;" value="'
.$m_ok.'">
                <input type="hidden" name="Ds_Merchant_MerchantData" id="ptc-gen125" style="margin:0px;padding:3px;border:1px inset;" value="'
.$_SESSION['unique_form_id'].'">
                
                
                <h2>'
.$text.'</h2>
                <br>
                <input class="btn btn-warning" type="submit" value="'
.ucfirst($lang['btn-pagar']).'">
                
                
                
                
            </form>
            </div>'
;
            
//echo "<br>";
            
echo $form

Mi duda es la siguiente, necesito que cuando el cliente paga y sin darle a aceptar , porque hay clientes que pagan y cierran la ventana, se envie el formulario de pago que en mi caso lo realiza con la url que le indico en $m_ok. Pero el problema es que si el cliente no le da a aceptar hemos recibido pagos y no sabemos de quienes son porque no nos llega formulario.


¿Valdria con poner la url en vez de en el $m_ok en el $m_return_url?

Gracias
  #2 (permalink)  
Antiguo 04/07/2014, 04:55
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Pasarela de pago de Redsys

En el $m_return_url tienes que poner algún script que reciba los datos q le manda el TPV via POST con el resultado... ;) Si Ds_Response < 100, el pago es correcto ;)

Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 04/07/2014, 05:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Pasarela de pago de Redsys

¿entonces el $m_ok?
Es que ahora mismo tengo alli todo el script que envia el email de la compra...etc

¿dejare de tener ese problema si alguien cierra la ventana tras haber pagado sin darle a aceptar?
  #4 (permalink)  
Antiguo 04/07/2014, 05:56
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Pasarela de pago de Redsys

MerchantURL es donde te envia todos los datos de la transaccion

OK es si el cliente le da a cerrar y la transaccion fue exitosa
KO es si el cliente le da a cerrar y la transaccion fue erronea

Para mi la importante es MerchantURL (la q me enlaza pedido, pago, y estado de este...).

KO y OK solo los uso para mostrarle algún mensaje al usuario de agradecimiento o de error :D

Código:
Ds_Merchant_MerchantURL 
Obligatorio si el comercio tiene notificación 
“online”. URL del comercio que recibirá un post 
con los datos de la transacción. 

Ds_Merchant_UrlOK 
Opcional. 
Si se envía será utilizado como URLOK, 
ignorando el configurado en el módulo de 
administración en caso de tenerlo. 

Ds_Merchant_UrlKO 
Opcional. 
Si se envía será utilizado como URLKO, 
ignorando el configurado en el módulo de 
administración en caso de tenerlo.
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 09/07/2014, 10:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Pasarela de pago de Redsys

Buenas, retomo el tema porque no habia tenido tiempo de probarlo pero ya lo he hecho. Y no me ha funcionado....

He puesto en Ds_Merchant_MerchantURL mi .php que debe de enviar el email para avisar de la nueva compra.

y cuando estoy en la pantalla siguiente.


Hasta que no le de a aceptar no se envia, que segun entiendo es el Ds_Merchant_UrlOK

Asi que tengo el mismo problema que antes porque si un usuario no le da a aceptar o cierra la ventana, no se ejecuta este envio.

¿saben que puede pasar?
  #6 (permalink)  
Antiguo 14/07/2014, 02:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Pasarela de pago de Redsys

Estoy un poco preocupado por el tema, porque recibimos pagos y no sabemos de quien son porque no se termina de ejecutar el script :S ¿Alguien me puede echar una mano?

Gracias!!
  #7 (permalink)  
Antiguo 14/07/2014, 06:48
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Pasarela de pago de Redsys

¿Estás seguro que Ds_Merchant_MerchantURL no se está ejecutando?

Prueba algo sencillo, y haz pruebas con el tpv ;)
Código PHP:

//Prueba en Ds_Merchant_MerchantURL
file_put_contents("test.txt""REDSYS ME HA ENVIADO INFORMACION"); 
Ponle eso al principio, y haz una prueba... si te crea test.txt será que redsys sí ha llamado a MerchantURL...

Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 14/07/2014, 07:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Pasarela de pago de Redsys

Vale, si me funciona y me crea el .txt ahora voy a rehacer un .php con todo lo que tiene que hacer, a ver si es que tengo el error en ese archivo.
  #9 (permalink)  
Antiguo 14/07/2014, 08:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 146
Antigüedad: 13 años, 3 meses
Puntos: 3
Respuesta: Pasarela de pago de Redsys

Creo que he encontrado el problema y me ha surgido otro, tengo unos datos que rellena el usuario en un formulario anterior y que me llegan al checkout.php por POST y de ahi los envio a oki.php con una session. Pero creo que me esta perdiendo la session.


¿Alguna manera de enviar estos datos despues del pago?
  #10 (permalink)  
Antiguo 14/07/2014, 09:12
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Pasarela de pago de Redsys

Guardalos en la BBDD segun el Id del pedido (q es unico).

;)
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: formulario, pago, pasarela
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:36.