2011-12-28 23 views
8

Tengo un problema similar a este postPayPal retorno automático no devuelve ningún dato POST

Setting PayPal return URL and making it auto return?

Sin embargo, la solución no está funcionando. Hemos IPN configurar y variables POST van pasando hacia atrás (el usuario hace clic hacia atrás y es capaz de descargar archivos PDF adquirido) pero luego trató de deshacerse de la página de confirmación de la orden de Paypal que dice

que acaba de terminar su pago . Su ID de transacción para este pago es: XXXXXXXXXXXXX.

y habilitado "retorno automático" en Preferencias de Pago, especificando la URL http://www.educted.ca/payment_complete.php, las variables POST ahora no se pasan de nuevo a payment_complete.php - que muestra en blanco. Tan pronto como desactivo el "Retorno automático", las variables POST se muestran correctamente y se pueden descargar los productos comprados. Estoy usando la cuenta de Paypal Sandbox, por supuesto.

<input type="hidden" name="return" value="<?php echo LIVE_SITE;>payment_complete.php"> 
<input type="hidden" name="cancel_return" value="<?php echo LIVE_SITE; ?>catalog.php"> 
<input type="hidden" name="notify_url" value="<?php echo LIVE_SITE; ?>ipn.php"> 
<input type="hidden" name="rm" value="2"> 

¿Alguna idea?

+0

Quizás puede usar Auto Return OR IPN, pero no ambos? – Natalia

Respuesta

13

Si habilita el retorno automático, los valores siempre se devolverán a través de GET independientemente de en qué se configure rm.

Si desea hacer la entrega inmediata del archivo después de que el comprador haya completado la transacción, eche un vistazo a la transferencia de datos de pago de PayPal. Una vez habilitado, PDT agrega un tx GET var a su URL de retorno; si llama a PayPal al https://www.paypal.com/cgi-bin/webscr?cmd=_notify-synch&tx=value-for-tx-here&at=value-for-your-paypal-account-authentication-token, podrá obtener datos adicionales sobre la transacción e inmediatamente verificar si son válidos.
Véase también https://www.paypal.com/pdt/

IPN debe reservarse para el procesamiento de back-end, ya que puede venir con un retraso significativo.
PDT, por otro lado, tiene que extraer la información de PayPal, y es como tal inmediato.

+0

¡Gracias! ¿Qué significa esto que "IPN debe reservarse para el procesamiento de back-end"? ¿Cuál sería un uso apropiado para IPN entonces? ¿Necesitamos usarlo en nuestro caso? – Natalia

+0

Sí, al usar IPN, se mantendrá actualizado automáticamente en caso de que algo suceda después de que la transacción se haya completado (por ejemplo, si PayPal decide revisar la transacción o si el comprador presenta de repente un caso de PayPal en su contra). – Robert

+0

Estoy haciendo esto pero NO estamos obteniendo una variable tx = en la url? ¿No hay nada en las variables posteriores? ¿Ha cambiado algo? – leen3o

4

Aún puede mantener Auto Return configurado en On, pero asegúrese de DISABLE PDT, y obtendrá todas las variables de transacción enviadas a su URL de retorno mediante POST (si tiene el parámetro rm establecido en 2 en su solicitud de Por supuesto, como dijiste que tenías).

Por algún motivo, habilitar PDT ignorará el parámetro rm y forzará que se use el método GET.

1

En su caso particular, se mostraba en blanco debido a un error en el código:

<?php echo LIVE_SITE;> 

Eso no analiza PHP como válida - que sería causa de un error grave. Si aún no se ha generado información y el informe de errores está desactivado, será una página en blanco.

1

Aún puede mantener Auto Return configurado en On, pero asegúrese de DESHABILITAR PDT, y obtendrá todas las variables de transacción enviadas a su URL de retorno mediante POST (si tiene el parámetro rm establecido en 2 en su solicitud por supuesto, como dijiste que tienes).

¡Esta es la respuesta correcta! No debe habilitar el envío de datos de pago con respuesta automática, si desea obtener POST-Data.

PERO, en este caso, debe utilizar un sitio https, de lo contrario el cliente recibirá una advertencia antes de redireccionar.

Cuestiones relacionadas