IPN vs PDT en Paypal

99

Tengo problemas para elegir entre la Notificación de pago instantánea (IPN) y la Transferencia de datos de pago (PDT) de PayPal.

Básicamente, los usuarios compran un producto único en mi sitio, pagan en PayPal y regresan a mi sitio. Entiendo cómo funciona IPN, pero ahora veo que podría desencadenar las diversas acciones que tienen lugar después de una compra exitosa más fácilmente con PDT, ya que los datos se devuelven allí y luego (en lugar de necesitar un oyente separado) .

Sin embargo, la documentación PDT de PayPal contiene esta línea críptica: "PDT no está diseñado para usarse con tarjetas de crédito o transacciones de Pago exprés". ... pero no puedo encontrar nada más sobre el tema.

  1. ¿Las tarjetas de crédito REALMENTE no están diseñadas para usarse con PDT? Quisiera más que una frase.

  2. ¿Eso significa que un usuario debe tener / crear una cuenta de PayPal para pagar?

  3. ¿Significa que si quiero permitir que los usuarios paguen con sus cuentas de PayPal Y / O con tarjetas de crédito directamente, debo implementar IPN?

¿Alguien que haya pasado por esto amablemente podría arrojar algo de luz?

Tom
fuente
Encontré una página web que realmente explica esto mejor. [PayPal PDT e IPN: ¿Cómo funciona?] [1] [1]: webmasters.stackexchange.com/questions/21634/…
Ananize Scott
Con respecto a la pregunta 2, hay una PayPal Account Optionalconfiguración bajo la My selling preferences > Website preferencescual puede activar para no obligar a sus clientes a crear / tener una cuenta de PayPal, es decir. pagar con tarjeta de crédito / débito.
kaiyaq

Respuestas:

112

Las API para PDT e IPN son similares. La principal diferencia es cuando recibe la notificación. Por esa razón, recomendaría implementar ambos.

  • Con PDT, recibe la notificación al instante y puede realizar cualquier procesamiento adicional necesario y mostrar al usuario una página de confirmación.
  • Con IPN se le garantiza que se le notificará que se recibió el pago incluso si la computadora del usuario explota antes de que pueda enviarle el PDT.

Implemente ambos y obtenga lo mejor de ambos mundos. Pero si solo está haciendo uno, IPN es el confiable.

Un inconveniente: si implementa ambos, existe la posibilidad de que sus pagos se procesen dos veces. Tenga cuidado de asegurarse de que eso no suceda. La aplicación que escribí maneja el PDT y el IPN de manera casi idéntica (la parte del backend es la misma) y ese código adquiere un bloqueo por usuario web en la base de datos, de modo que si el mismo usuario intenta enviar el mismo pago exacto varias veces, solo se puede procesar una vez. Una vez procesado, el resultado de ese proceso se reutiliza para cualquier intento posterior de procesarlo.

Editar Una cosa más: IPN lleva más información que PDT. Hay muchos mensajes diferentes que puede recibir de IPN, como notificación de devolución de cargo, etc., y por lo tanto, realmente debería implementarlo.


El sistema PDT de PayPal envía confirmaciones de pedidos a sitios de comerciantes que utilizan PayPal Payments Standard y les permite autenticar esta información. Estos sitios pueden mostrar estos datos localmente en una página de "confirmación de pedido".

¿Cuándo usar PDT?

IPN proporciona las mismas capacidades descritas anteriormente. Entonces, ¿cuándo debería elegir PDT en lugar de IPN?

Con PDT, su sitio recibe una notificación de inmediato cuando un cliente completa el pago. Sin embargo, con IPN, existe un retraso material entre el momento en que un cliente completa el pago y el momento en que su sitio recibe la notificación de este evento.

Por lo tanto, use PDT si su sitio incluye una función que requiere una notificación de pago inmediata.

Por ejemplo, considere una tienda de música digital. Con PDT, esta tienda puede permitir que los clientes descarguen sus compras de inmediato, ya que PDT envía confirmaciones de pedidos de inmediato. Con IPN, no es posible el cumplimiento inmediato de pedidos.

Ventajas de IPN

PDT tiene una gran debilidad: envía confirmaciones de pedidos una vez y solo una vez. Como resultado, cuando PDT envía una confirmación, su sitio debe estar ejecutándose; de lo contrario, nunca recibirá el mensaje.

Con IPN, por el contrario, la entrega de confirmaciones de pedidos está prácticamente garantizada, ya que IPN reenvía una confirmación hasta que su sitio acuse recibo. Por esta razón, PayPal recomienda que implemente IPN en lugar de PDT.

Otra ventaja de IPN es que envía muchos tipos de notificaciones, mientras que PDT envía solo confirmaciones de pedidos. Por lo tanto, al usar IPN, su sitio puede recibir, por ejemplo, notificaciones de contracargos y confirmaciones de pedidos. Nota: Si su sitio debe ser notificado de los pagos de inmediato, puede implementar tanto IPN como PDT. Sin embargo, si lo hace, su sitio recibirá dos confirmaciones de pedido por cada venta. Como resultado, debe tener cuidado de tomar medidas (por ejemplo, enviar un producto) en solo una copia de un mensaje de confirmación determinado.

Documentación aquí

Sr. Brillante y Nuevo 安 宇
fuente
2
Gracias, ya veo. Entonces, básicamente, vincule las actualizaciones de la base de datos a IPN (ya que siempre se procesará) y vincule las confirmaciones de usuario solo a PDT (como verificar si el pago ha sido procesado por IPN en una página pendiente, por ejemplo) ...?
Tom
1
+1 para implementar IPN y PDT, lo hemos hecho y funciona bien.
Mark Redman
3
@Tom: Mi implementación es: Cuando ingrese un PDT o un IPN, lea los parámetros e intente procesar el pago. El procesador A) bloquea otros procesos simultáneos (para ese usuario) y B) comprueba si ya se ha procesado. Una vez finalizado el procesamiento, con IPN ha terminado, con PDT muestra al usuario una página de confirmación o una página de recibo o lo que sea. Tanto el lado PDT como el lado IPN pueden funcionar correctamente si el otro lado está hacia abajo, pero se obtiene una buena confiabilidad al tener ambos. Un porcentaje bastante alto de usuarios no hace clic antes de que llegue la IPN.
Mr. Shiny and New 安 宇
8
Esta respuesta no responde las preguntas n. ° 1, n. ° 2 o n. ° 3 del OP, pero ¿se acepta?
Clint Pachl
2
IPN tarda hasta 4 días en responder ... apesta
Toskan
1

Re 1. PDT está diseñado para usarse con la función Devolución automática para pagos en el sitio web. Auto Return redirige al sitio PDT después de pagar dinero al vendedor. Lamentablemente, no es posible utilizar esa función junto con la cuenta de PayPal opcional, que se utiliza para habilitar el pago con tarjeta de crédito. Aquí hay una nota de PayPal: "Si ha activado la devolución automática y ha elegido activar la cuenta de PayPal opcional para los nuevos usuarios, no se redirigirá automáticamente a un nuevo usuario a su sitio web, pero se le dará la opción de volver". . El usuario tendrá la opción de volver a su sitio (paso PDT) o permanecer en el sitio de PayPal. En resumen, al pagar con tarjeta de crédito, el usuario puede omitir el paso PDT si el usuario no hace clic en "regresar al enlace de la tienda".

Con respecto a 2. Depende de usted qué opciones de pago desea permitir. Si desea permitir el pago sin una cuenta PayPal, puede habilitar la cuenta opcional . Si desea permitir solo a los usuarios con cuentas de PayPal, desactive esa función. Puede que haya más opciones.

Ref. 3. En su caso, debe activar la acción después de una compra exitosa. La forma recomendada sería implementar IPN. PDT no funciona en todos los casos y no garantiza la entrega de mensajes. Aquí hay un enlace al documento que cubre ese tema PDT vs IPN .

jan salawa
fuente
0

Esta es una pregunta antigua, pero mi respuesta simple sería: ¿Por qué no usar tanto PDT como IPN? Funcionarán bien para transacciones con tarjeta.

PDT puede proporcionar el estado inmediato de la transacción a su sitio web, donde puede verificar rápidamente el estado de éxito o fracaso del pago y proporcionar al usuario el mensaje apropiado.

Mientras tanto, puede esperar la verificación completa de IPN en segundo plano. Una vez recibido, puede utilizarlo para actualizar aún más su base de datos y procesar el pedido.

Puede seguir esta guía paso a paso que me pareció muy clara y útil, y todavía es válida en 2018.

https://www.codexworld.com/paypal-standard-payment-gateway-integration-php/

Sol
fuente