PayPal Instant Payment Notification ( IPN ) | OTHER chapters | |
Il meccanismo IPN non è molto dissimile dal meccanismo PDT. La differenza sostanziale è che IPN non è da utilizzare come pagina di ritorno per il vostro utente. Una transazione IPN può avvenire subito dopo la chiusura della transazione finanziaria, oppure uno o due giorni dopo. L'unica cosa certa è che con IPN il server HTTPS di PayPal invierà le informazioni, relative al pagamento online appena concluso, sempre e comunque, a prescindere dal comportamento del vostro utente. Quindi, IPN è da utilizzare solo ed esclusivamente se a voi servono i dati inviati da PayPal per aggiornare il vostro database. IPN, naturalmente, può coesistere con una delle pagine di ritorno viste nei precedenti capitoli:
La pagina di ritorno ( semplice o PDT ) serve a stampare a video, per il vostro utente, le informazioni relative alla transazione appena conclusa, mentre il programma IPN serve a voi per eseguire, in background, tutte quelle operazioni che riterrete opportuno eseguire sul vostro database. Di IPN, dovete tenere a mente alcuni punti essenziali:
Potrete eseguire i test delle impostazioni che vedremo nei paragrafi successivi, utilizzando l'ambiente virtuale Sandbox di PayPal, che abbiamo visto nel secondo articolo di questa guida. Ricordate sempre che le form HTML vanno inviate a due indirizzi internet ( URL ) differenti, a seconda che stiate utilizzando l'ambiente virtuale Sandbox, oppure che vi troviate ad operare in ambiente reale PayPal. Per Sandbox, utilizzate sempre l'indirizzo:
Quando, invece, vi trovate in PayPal, utilizzate sempre l'indirizzo:
Ricordate, inoltre, che il campo, contenuto nella vostra form di invio:
indica al server HTTPS di PayPal il nome dell'account sul quale versare i soldi, frutto della transazione. L'identificativo dell'account virtuale Sandbox è diverso dall'identificativo dell'account reale PayPal, naturalmente. Entrate nel vostro account PayPal e seguite il percorso:
In questa pagina, due sono le opzioni da attivare:
Una volta impostate queste opzioni, premete il bottone "Salva".
Ora che avete impostato IPN nel vostro account PayPal, rientrate nel vostro account e tornate alla pagina di creazione del bottone "Paga adesso", per creare un nuovo bottone.
Inserite i dati del vostro articolo in vendita:
Ricordatevi di deselezionare la voce "Salva il pulsante su PayPal", nella scheda "Passaggio 2. Gestisci le giacenze di magazzino, i profitti e le perdite (opzionale)". Quindi, premete il bottone "Crea pulsante". A questo punto, vedrete il codice HTML della form, in forma criptata ( è la modalità di default di PayPal, nel caso in cui venga escluso il salvataggio del codice sul server Paypal ), ma vedrete anche un link, subito sopra il codice, con scritto: "Rimuovi protezione codice". Cliccate e vedrete apparire il codice HTML in chiaro. Copiate quel codice su una pagina HTML del vostro sito. Prima di premere questo nuovo bottone "Paga adesso", dovrete creare il vostro programma IPN. Una volta terminata la transazione finanziaria, PayPal chiama il vostro programma IPN, inviando, via HTTP POST, tutte le variabili relative alla transazione appena terminata. Il server HTTPS di PayPal, però, resta in attesa della risposta del vostro server, che deve inviare un messaggio di avvenuta ricezione dei dati ( notification validation ). Questo messaggio deve essere inviato via POST e deve contenere l'intera stringa appena ricevuta dal server PayPal, più la coppia di variabili:
A questo punto, se il server PayPal si sente soddisfatto della risposta del vostro programma IPN, chiude la corrente transazione IPN, inviando, al vostro programma IPN una risposta, contenente una sola parola:
se ritiene la vostra autenticazione corretta, oppure:
se ritiene che ci sia stato un errore, durante le operazioni IPN. All'interno del sito PayPal potete trovare esempi di programma IPN per diversi linguaggi, compresi PHP e Perl. Sono tutti ottimi esempi, ma hanno il limite di prevedere che il server che li ospiterà avrà installato un pieno supporto per i protocolli SSL.
Come ho già spiegato nel precedente capitolo, "PayPal Payment Data Transfer ( PDT )", questo non sempre è vero. Nell'esempio Perl, per esempio, viene utilizzata la libreria
Con la maggior parte di queste righe dovreste, ormai, aver raggiunto una buona dimestichezza. La novità, in questo programma, sono i filehandle che apriamo. I filehandle rappresentano flussi di dati, canali privilegiati per una determinata operazione di input/output:
Per il resto, non dovreste incontrare alcuna difficoltà ad interpretare le righe successive, visto che sono operazioni già utilizzate negli articoli precedenti. La sola cosa da ricordare è che quella variabile
se il server HTTPS di PayPal ritiene la vostra autenticazione corretta, oppure:
se il server HTTPS di PayPal ritiene che ci sia stato un errore, durante le operazioni IPN.
|
||
PayPal Instant Payment Notification ( IPN ) | The .bit guides: original contents |