Ricevuta pagamento Paypal: Come gestire la url di esito acquisto di PayPal
Ho aggiornato il contenuto della pagina il 1 Aprile 2022
Ecco come gestire la ricevuta di conferma acquisto di PayPal, utilizzando il metodo GET, che ricordo va abilitata nelle impostazioni dell’account PayPal indicando la URL di risposta ad esempio: https://www.tuosito/ricevuta/ricevuta.php.
PayPal dopo ogni acquisto genera una URL di risposta aggiungendo dopo la URL indicata alcune variabili da catturare e gestire che vediamo tra poco.
Attenzione questa soluzione è semplice, immediata e non richiede particolari conoscenze di programmazione, ma utilizzando il metodo GET per passare le variabili, queste possono essere facilmente catturate e modificate falsificando gli esiti. E’ una soluzione rapida per chi non ha grossi volumi d’acquisto, dove è possibile fare controlli effettivi sull’incasso realmente avvenuto sull’account PayPal. Per chi ha la necessità invece di avere maggiore sicurezza, PayPal prevede un altro metodo più complesso dove i dati sono inviati in modo crittografato con metodo POST.
I dati relativi all’esito della ricevuta acquisto inviata da PayPal ci consentono di poter gestire la fase successiva all’acquisto, ad esempio inviando una email personalizzata dal nostro sito web per confermare o meno l’acquisto, inserire i dati di avvenuto pagamento nel nostro database per consentire la successiva erogazione del servizio o del prodotto da spedire o eventualmente annullare l’ordine per mancato pagamento, memorizzandone il motivo.
Analizziamo la URL inviata da PayPal i cui cambi sono presenti come variabile GET:
Url che consiglio: https://www.tuosito/ricevuta/ricevuta.php
Conviene crearvi una cartella all’interno del vostro sito web che contenga i file necessari per gestire la ricevuta invita da PayPal. Nel mio caso ho creato un file ricevuta.php che contiene il codice php necessario per catturare le variabili.
I campi inviati da PayPal sono come quelli di seguito:
?st=Completed&tx=codice_transazione&cc=EUR&amt=1.00&cm=131&payer_email=info%40emai_delcliente.it&payer_id=codice_player&payer_status=VERIFIED&first_name=Mario&last_name=Rossi&txn_id=codice_transazione&mc_currency=EUR&mc_fee=0.38&mc_gross=1.00&protection_eligibility=ELIGIBLE&payment_fee=0.38&payment_gross=1.00&payment_status=Completed&payment_type=instant&handling_amount=0.00&shipping=0.00&item_name=codice_prodotto&quantity=1&txn_type=web_accept&payment_date=2022-03-29T20%3A52%3A34Z&business=account%40email_esercente.it&receiver_id=codice_ricevuta¬ify_version=UNVERSIONED&custom=131&verify_sign=Codice_trasmissione_dati
VARIABILI RELATIVE ALLA TRANSAZIONE:
Queste variabili sono utili per gestire internamente lo stato della transizione, non sono invece utili da riferire al cliente
st=$_GET[st]
tx=$_GET[tx]
payer_status=$_GET[payer_status]
mc_currency=$_GET[mc_currency]
mc_fee=$_GET[mc_fee]
mc_gross=$_GET[mc_gross]
protection_eligibility=$_GET[protection_eligibility]
payment_fee=$_GET[payment_fee]
payment_gross=$_GET[payment_gross]
payment_status=$_GET[payment_status]
payment_type=$_GET[payment_type]
handling_amount=$_GET[handling_amount]
shipping=$_GET[shipping]
txn_type=$_GET[txn_type]
business=$_GET[business]
notify_version=$_GET[notify_version]
custom=$_GET[custom]
verify_sign=$_GET[verify_sign]
RICEVUTA UTENTE
Questo dati invece sono utili per gestire email di risposta sull’avvenuto acquisto o meno verso il cliente:
cc=$_GET[cc]
amt=$_GET[amt]
txn_id=$_GET[txn_id]
payer_id=$_GET[payer_id]
cm=$_GET[cm]
payer_email=$_GET[payer_email]
first_name=$_GET[first_name]
last_name=$_GET[last_name]
item_name=$_GET[item_name]
quantity=$_GET[quantity]
payment_date=$_GET[payment_date]
receiver_id=$_GET[receiver_id]
Potete copiare e incollare queste variabili in un file php e simulare l’esito utilizzando l’url di seguito, ovviamente modificando i parametri.
Dal codice PHP potete gestire i vari messaggi in funzione dell’esito (Il suo acquisto è andato a buon fine, ecc…) o evitare che una stessa transazione possa essere catturata, modificata e riproposta più volte.
https://www.tuosito/ricevuta/ricevuta.php?st=Completed&tx=codice_transazione&cc=EUR&amt=1.00&cm=131&payer_email=info%40emai_delcliente.it&payer_id=codice_player&payer_status=VERIFIED&first_name=Mario&last_name=Rossi&txn_id=codice_transazione&mc_currency=EUR&mc_fee=0.38&mc_gross=1.00&protection_eligibility=ELIGIBLE&payment_fee=0.38&payment_gross=1.00&payment_status=Completed&payment_type=instant&handling_amount=0.00&shipping=0.00&item_name=codice_prodotto&quantity=1&txn_type=web_accept&payment_date=2022-03-29T20%3A52%3A34Z&business=account%40email_esercente.it&receiver_id=codice_ricevuta¬ify_version=UNVERSIONED&custom=131&verify_sign=Codice_trasmissione_dati
Note sulla modalità di scrittura del post
Questo articolo è stato scritto da me, senza alcun aiuto dai sistemi di intelligenza artificiale, quali OpenAI, ChatGPT e simili.