Come mettere in produzione un backend Laravel che utilizza le "Classic API" (o NVP/SOAP API) di Paypal
Fondamentalmente bisogna predisporre 2 concetti:
- Credenziali di accesso alle api
- L'APP > che permette di avere l'
APP-ID
da impostare lato SDK e backend
Prerequisiti
- Account business PayPal verificato
Guida di riferimento: https://developer.paypal.com/docs/classic/api/apiCredentials/
- Accedi a PayPal.com con l'account PayPal business verificato, quindi clicca in alto a destra sull'icona del profilo e scegli "Profilo e impostazioni"
- Seleziona "Strumenti di vendita" e quindi fai click su "Aggiorna" alla voce "Accesso API"
- Nella sezione "Integrazione API NVP/SOAP" fai click su "Richiedi certificato API" o "Vedi certificato API"
- Scarica quindi il certificato sul computer. Sarà un file
cert_key_pem.txt
- Copia le credenziali nei relativi campi del file
.env
in production:- valore di "Nome utente API" in
env('PAYPAL_ACCOUNT_USERNAME')
, - valore di "Password API" in
env('PAYPAL_ACCOUNT_PASSWORD')
, - valore di "Impronta digitale" in
env('PAYPAL_ACCOUNT_SIGNATURE')
,
- valore di "Nome utente API" in
l'SDK Php di PayPal permette di utilizzare o la SIGNATURE o il CERTIFICATO per l'autenticazione tramite API. Per le applicazioni in produzione è consigliato l'utilizzo di un certificato per garantire una migliore sicurezza sulla transazione dei dati.
Se ci sono problemi in locale nel test del certicato fare riferimento a questa issue ed alla sua possibile risoluzione
Funzionamento con certificato .p12 testato in locale su Mac con OS X Sierra.
- Da riga di comando spostarsi nella cartella dove è presente il file
cert_key_pem.txt
ed eseguire:
openssl pkcs12 -export -inkey cert_key_pem.txt -in cert_key_pem.txt -out cert_key.p12
E inserire la password del certificato che andrà poi salvata nel file .env
sul server in produzione nel campo env('PAYPAL_CERTIFICATE_PASSWORD')
Una volta predisposto il certificato .p12
lo si deve mettere nella cartella storage/certs
.
NOTA
Per il test su Mac OS X è necessario utilizzare i file certificati .p12
, mentre su sistema operativo ubuntu bisogna uploadare i certificati in formato .pem
.
Per convertire il certificato p12 in pem è possibile eseguire la riga di comando:
openssl pkcs12 -in cert_key.p12 -out cert_key.pem -nodes
- Accedere a https://www.paypal-apps.com/user/my-account/applications/
- Creare una nuova app e riempire i campi del form con l'aiuto del cliente
Una volta creata e approvata l'app verrà fornito l'APP-ID
da inserire sia lato mobile che lato server per far funzionare il tutto