Se come me sviluppate siti e-commerce con pagamento via PayPal, vi sarete di certo imbattuti nell'utilizzo del servizio PayPal IPN (Instant Payment Notification) per ricevere le notifiche sui pagamenti effettuati dagli utenti.
Questo servizio consiste nel far richiamare da PayPal, a checkout concluso, un URL da voi fornito di un "listener" per andare ad aggiornare lo stato dell'ordine effettuato dell'acquirente.
Se sviluppate in localhost e volete testare il corretto funzionamento della vostra implementazione IPN, si pone quindi il problema di fornire un indirizzo pubblico raggiungibile dal server PayPal, nonostante il vostro ambiente di test sia con ogni probabibiltà chiuso alla sola rete locale. Ecco quindi come fare per trasformare il vostro PC in un web server accessibile via internet:
Non aprite quella porta
Se sviluppate su sistema operativo Windows, per evitare conflitti con IIS (porta 80), vi sarete sicuramente spostati con il vostro server web Apache su un'altra porta. Io ad esempio ho scelto la 8080.
In questo coso verrebbe naturale comunicare a PayPal l'indirizzo completo di porta 8080. Fermatevi! PayPal accetta solo IPN verso la porta 80 (http) e 443 (https).
Per spostare il server Apache sulla 80, prima dovete liberare la stessa da alcuni servizi di Windows; nello specifico:
- arrestare IIS;
- da Task Manager, terminare servizio MsDepSvc;
- da Gestione servizi, spegnere Servizio Pubblicazione sul Web.
Globalhost
Configurare il router "casalingo" o aziendale in modo che instradi le richieste web al nostro PC (impostazioni NAT). Come spiegato in precedenza, utilizzare esclusivamente la porta 80.
A questo punto potete utilizzare nell'URL completo del listener IPN il vostro IP pubblico (visibile dall'interfaccia del Modem/Router ADSL oppure tramite un servizio My IP) oppure nel caso di IP dinamico, appoggiarvi a servizi di DNS dinamico come No-IP.com.