Cita:
Iniciado por NUCKLEAR El usuario pregunta sobre el IPN,
Me refiero a la reedición 2 del usuario.
Existe un campo en el botón de "Paypal" llamado
return, donde indicaremos la URL a la que será direccionado el comprador después de la transacción en el sitio de PayPal.
El proceso puede funcionar así.
1. En el momento que el visitante haga click en un botón de por ejemplo "Levantar orden" y ANTES de mostrar el botón de Paypal, se guarda un registro en la tabla de "ordenes" de nuestra base de datos para guardar los detalles de la compra.
2.- Se arma el botón "Pagar ahora" de PayPal en donde:
El campo "item_number" es el ID (llave primaria) del registro que acabamos de insertar en la tabla "ordenes"
En el campo "return" especificamos el URL a donde será dirigido el visitante DESDE PAYPAL después de finalizar la transacción, aquí es donde viene el truco, en este campo además de especificar el URL al script enviamos al mismo el ID de la orden (paso 1) de esta forma sabemos exactamente cuál es la orden que se esta procesando sin depender de las variables de sesión.
Ejemplo:
1.- El cliente hace click en el botón "Levantar orden"
2.- Se guarda la orden en nuestra tabla "ordenes" y supongamos que el servidor MySQL le asignó el ID 3.
3.- Se arma dinámicamente el botón "Comprar ahora" de PayPal especificando en los campos
item_number y
return el valor del ID de la orden generada en el paso anterior.
Cita: <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
.
.
<input type="hidden" name="item_number" value="3">
<input type="hidden" name="return" value="http://www.misitio.com/paso_final.php?orden=3">
.
.
</form>
4.- Al finalizar la transacción y cuando el cliente sea redirigido a nuestro sitio, nuestro archivo
paso_final.php recibirá el ID de la venta y lo podremos procesar dependiendo del estatus de la transacción que
previamente nos haya informado el IPN, de esta forma no hay necesidad de depender de las variables de sesión.
Saludos.