As APIs para PDT e IPN são semelhantes. A principal diferença é quando você recebe a notificação. Por esse motivo, eu recomendaria a implementação de ambos.
- Com o PDT, você recebe a notificação instantaneamente e pode fazer qualquer processamento adicional necessário e mostrar ao usuário uma página de confirmação.
- Com o IPN, você tem a garantia de ser notificado de que o pagamento foi recebido, mesmo se o computador do usuário explodir, antes que ele possa enviar o PDT.
Implemente os dois e obtenha o melhor dos dois mundos. Mas se você estiver fazendo apenas um, o IPN é o confiável.
Um problema: se você implementar ambos, há uma chance de seus pagamentos serem processados duas vezes. Tome cuidado para garantir que isso não aconteça. O aplicativo que escrevi lida com PDT e IPN quase de forma idêntica (a parte de back-end é a mesma) e esse código adquire um bloqueio por usuário da web no banco de dados, de modo que se o mesmo usuário tentar enviar exatamente o mesmo pagamento várias vezes só pode ser processado uma vez. Uma vez processado, o resultado desse processo é reutilizado para quaisquer tentativas subsequentes de processá-lo.
Editar
Mais uma coisa: IPN carrega mais informações do que PDT. Existem muitas mensagens diferentes que você pode receber do IPN, como notificação de estorno, etc. e, portanto, você realmente deve implementá-lo.
O sistema PDT do PayPal envia confirmações de pedido aos sites de comerciantes que usam o PayPal Payments Standard e permite que eles autentiquem essas informações. Esses sites podem exibir esses dados localmente em uma página de "confirmação de pedido".
Quando usar o PDT?
O IPN oferece os mesmos recursos descritos acima. Então, quando você deve escolher PDT em vez de IPN?
Com o PDT, seu site é notificado imediatamente quando um cliente conclui o pagamento. Com o IPN, no entanto, há um atraso significativo entre o momento em que um cliente conclui o pagamento e o momento em que seu site recebe a notificação desse evento.
Portanto, use o PDT se o seu site incluir um recurso que exija notificação de pagamento imediata.
Por exemplo, considere uma loja de música digital. Com o PDT, esta loja pode permitir que os clientes baixem suas compras imediatamente, já que o PDT envia confirmações de pedidos imediatamente. Com o IPN, o atendimento imediato do pedido não é possível.
Vantagens do IPN
O PDT tem uma grande fraqueza: ele envia confirmações de pedidos uma vez e apenas uma vez. Como resultado, quando o PDT envia uma confirmação, seu site deve estar funcionando; caso contrário, ele nunca receberá a mensagem.
Com o IPN, ao contrário, a entrega das confirmações de pedidos é virtualmente garantida, pois o IPN reenvia a confirmação até que seu site acuse o recebimento. Por esse motivo, o PayPal recomenda que você implemente IPN em vez de PDT.
Outra vantagem do IPN é que ele envia muitos tipos de notificações, enquanto o PDT envia apenas confirmações de pedidos. Assim, usando o IPN, seu site pode receber, por exemplo, notificações de estornos, bem como confirmações de pedidos. Nota: Se o seu site precisar ser notificado sobre pagamentos imediatamente, você pode implementar IPN e PDT. No entanto, se você fizer isso, seu site receberá duas confirmações de pedido para cada venda. Como resultado, você deve ter o cuidado de agir (por exemplo, enviar um produto) em apenas uma cópia de uma determinada mensagem de confirmação.
Documentação aqui