Le API per PDT e IPN sono simili. La differenza principale è quando ricevi la notifica. Per questo motivo consiglierei di implementare entrambi.
- Con PDT ricevi immediatamente la notifica e puoi eseguire qualsiasi elaborazione aggiuntiva richiesta e mostrare all'utente una pagina di conferma.
- Con IPN hai la garanzia di essere avvisato che il pagamento è stato ricevuto anche se il computer dell'utente esplode prima che possa inviarti il PDT.
Implementali entrambi e ottieni il meglio da entrambi i mondi. Ma se ne stai facendo solo uno, IPN è quello affidabile.
Un problema: se si implementano entrambi, è possibile che i pagamenti vengano elaborati due volte. Assicurati che ciò non accada. L'applicazione che ho scritto gestisce il PDT e l'IPN in modo quasi identico (la parte di backend è la stessa) e quel codice acquisisce un blocco per utente web nel database, in modo che se lo stesso utente tenta di inviare lo stesso identico pagamento più volte può essere elaborato una sola volta. Una volta elaborato, il risultato di tale processo viene riutilizzato per eventuali tentativi successivi di elaborarlo.
Modifica
Un'altra cosa: IPN trasporta più informazioni di PDT. Esistono molti messaggi diversi che puoi ricevere da IPN, come la notifica di chargeback, ecc., Quindi dovresti davvero implementarlo.
Il sistema PDT di PayPal invia conferme d'ordine ai siti commercianti che utilizzano PayPal Payments Standard e consente loro di autenticare queste informazioni. Tali siti possono quindi visualizzare questi dati localmente in una pagina di "conferma dell'ordine".
Quando utilizzare PDT?
IPN fornisce le stesse funzionalità descritte sopra. Quindi, quando dovresti scegliere PDT invece di IPN?
Con PDT, il tuo sito riceve una notifica immediata quando un cliente completa il pagamento. Con IPN, tuttavia, c'è un notevole ritardo tra il momento in cui un cliente completa il pagamento e il momento in cui il tuo sito riceve la notifica di questo evento.
Quindi, utilizza PDT se il tuo sito include una funzionalità che richiede una notifica immediata del pagamento.
Ad esempio, considera un negozio di musica digitale. Con PDT, questo negozio può consentire ai clienti di scaricare immediatamente i propri acquisti poiché PDT invia immediatamente le conferme dell'ordine. Con IPN, tale evasione immediata degli ordini non è possibile.
Vantaggi di IPN
PDT ha un grande punto debole: invia le conferme d'ordine una e solo una volta. Di conseguenza, quando PDT invia una conferma, il tuo sito deve essere in esecuzione; in caso contrario, non riceverà mai il messaggio.
Con IPN, al contrario, la consegna delle conferme d'ordine è virtualmente garantita poiché IPN invia nuovamente una conferma fino a quando il tuo sito non conferma la ricezione. Per questo motivo, PayPal consiglia di implementare IPN anziché PDT.
Un altro vantaggio di IPN è che invia molti tipi di notifiche, mentre PDT invia solo conferme d'ordine. Quindi, utilizzando IPN, il tuo sito può ricevere, ad esempio, notifiche di storno di addebito e conferme d'ordine. Nota: se il tuo sito deve essere informato immediatamente dei pagamenti, puoi implementare sia IPN che PDT. Tuttavia, se lo fai, il tuo sito riceverà due conferme d'ordine per ogni vendita. Di conseguenza, devi fare attenzione ad agire (ad esempio, spedire un prodotto) su una sola copia di un dato messaggio di conferma.
Documentazione qui