Guida Come integrare PayPal per gestire i pagamenti in PHP

Stato
Discussione chiusa ad ulteriori risposte.

SyncroIT

Utente Emerald
13 Gennaio 2014
674
94
208
523
Gestione dei pagamenti con PayPal in PHP

Gestire i pagamenti che ci arrivano con PayPal su PHP non è impossibile, e PayPal ha già pensato a tutto ciò.
Con questa guida potrete rendere automatiche alcune azioni che seguono la ricezione di un pagamento, ad esempio rendere un utente Premium subito dopo che costui ha fatto il pagamento, oppure inviare un'email all'utente con un messaggio personale, e via dicendo.

IPN Listener
L'IPN Listener è un servizio di PayPal che si occupa di informare un server della ricezione di un pagamento.
Scopriamo insieme come funziona!

paypal-ipn.jpg

  • Alla ricezione di un pagamento, l'IPN comunicherà al nostro server che un nuovo pagamento è stato ricevuto.
  • Il nostro server, presi tutti i dati da PayPal, li rimanderà a quest'ultimo
  • PayPal verificherà che i dati siano originali e risponderà con VERIFIED o INVALID
    Nel primo caso dovremo gestire il pagamento come un pagamento autentico e verificato da PayPal.
    Nel secondo caso dovremo scartare il pagamento in quanto non autentico.
Configuriamo l'IPN Listener
  • Per prima cosa, creiamo un nuovo file nel nostro web server, chiamiamolo ipn.php
  • Entriamo quindi sul nostro account PayPal.
  • Clicchiamo su Preferenze Venditore sotto la scheda Strumenti vendita
  • Vicino a Notifiche immediate di pagamento clicchiamo su Aggiorna e poi su Scegli impostazioni vendita
  • Nella barra dell'URL incolliamo il percorso web per l'accesso a ipn.php e salviamo le modifiche
    ZTy2PvP.png
Attenzione
Per iniziare dovremo fare dei test, quindi dovremo creare un account PayPal Sandbox cliccando qui e seguire i passaggi per abilitare l'IPN Listener su Sandbox.
Grazie a Sandbox potremo fare delle prove di pagamento creando un account venditore e un account acquirente.
In questo modo eviteremo spiacevoli inconvenienti coi clienti.

Il file ipn.php: cosa metterci dentro
Nel file ipn.php dovremo metterci lo script che servirà a gestire i pagamenti seguendo il processo descritto all'inizio di questa guida.

In questo caso, PayPal ci viene in soccorso fornendoci uno scheletro dal quale poter iniziare che troviamo qui:
https://github.com/paypal/ipn-code-samples/blob/master/php/PaypalIPN.php

Scarichiamo quindi lo scheletro e iniziamo da questo.​
  • Impostiamo la variabile $use_sandbox a true se stiamo utilizzando PayPal Sandbox (testing) oppure a false se stiamo in un ambiente di produzione.
  • Verifichiamo l'effettivo funzionamento dello script utilizzando l'IPN Simulator
  • Procediamo dalla riga 140, dove si effettua la verifica di validità del pagamento ricevuto.

PHP:
if ($res == self::VALID) {

    // Qui il nostro codice
    return true;
} else {
    return false;
}

Possiamo quindi iniziare a scrivere il codice che desideriamo per gestire il pagamento.

Per la gestione del pagamento dovremo utilizzare i parametri che PayPal ci ha passato, che troviamo nella variabile $myPost.

I parametri che PayPal passa all'interno di $myPost sono elencati qui:
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/

Il bottone per il pagamento (HTML)
Per rendere il tutto più personalizzabile, possiamo aggiungere dei dati durante il pagamento.
Per farlo, quando andiamo a creare il bottone per il pagamento, seguiamo le indicazioni di PayPal che ci permette di aggiungere variabili nascoste che potremo utilizzare una volta ricevuto il pagamento. Troviamo tutto qui:
https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/formbasics/

Tra queste variabili, molte vengono utilizzate per specificare a PayPal a chi inviare il pagamento e di che tipo di pagamento si tratta, altre possono essere utilizzate a proprio piacere, ad esempio la variabile custom.

Ogni variabile dovrà essere inserita come elemento <input> (HTML) all'interno del form di pagamento.​
 
  • Mi piace
Reazioni: demtor
Stato
Discussione chiusa ad ulteriori risposte.