Livezilla

Certified Partner and
PrestaShop Developer for:

Risolvere Problemi a Paypal Prestashop

Risolvere Problemi Paypal

Questa pagina è stata scritta in inglese, si prega di consultare la versione in inglese per le modifiche del codice corretto.

I consigli che seguono sono state scritte per Prestashop 1.2 e 1.3, se si utilizza una qualsiasi versione di Prestashop 1.4, assicurarsi di avere l'ultima versione del modulo paypal (disponibile gratuitamente presso http://addons.prestashop.com/en/payments- gateways/1748-paypal.html)


1) Il problema più comune con gli ordini paypal non si presenta succede quando paypal non può accedere al server, il file / cartella i permessi non sono corretti o se il tuo conto PayPal non è verificato.


Verificare che le seguenti condizioni sono corrette:

· Il tuo negozio non è in modalità di manutenzione (se nessuno può accedere al sito, il sito paypal non sarà in grado di entrambi).

· Non è la protezione tramite password del tuo sito (stesso motivo di cui sopra).

· Provare ad aprire questa pagina dal browser - http://www.yoursite.com/modules/paypal/validation.php,
se si ottiene un errore (errore 500, la pagina non può essere visualizzato), che questo significa che hai un problema di permessi del file. Molto probabilmente, la directory paypal o in tutta la directory dei moduli è impostata a 777 e il vostro ospite non lo consente (non è sicuro), prova a cambiare a 755. È inoltre possibile controllare log di errore del server (dal cPanel) per ottenere l'errore esatto.

· Assicurarsi che il proprio conto PayPal è verificato, altrimenti le transazioni non vengono approvati automaticamente e PrestaShop mostrerà un errore di pagamento.


2) Il problema più comune modalità sandbox con il modulo paypal è che gli ordini non vengono visualizzati sul negozio.

La ragione di ciò è il modulo paypal è attualmente impostato per creare ordini solo se la risposta che riceve dal sito paypal è "completato", però, durante l'esecuzione in modalità sandbox, paypal invia una risposta di "attesa".

Abbiamo letto qualche documentazione su come cambiare il conto sandbox di inviare una risposta "Completed", ma anche dopo aver provato che, pagamenti appariva ancora come in sospeso.


Per rimediare, apportare la seguente modifica in / modules / paypal / validation.php linea # 80.

Permetterà per un acquisto di uno stato di "attesa" di passare attraverso, ma solo in modalità sandbox.


elseif ($ _POST ['payment_status']! = 'Completato')

Dovrebbe essere modificato in

elseif ($ _POST ['payment_status'] = 'Completato' & & (Configurazione::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'In attesa'))


3) Un altro problema comune è che gli ordini che verranno effettuati in modalità live non appaiono nel backoffice, ma il cliente viene comunque addebitato.


Questo è spesso il caso, perché la risposta di paypal non è "completata".

Ci potrebbero essere molte ragioni per questo, i principali che abbiamo trovato sono:

a) La valuta di default in Prestashop non corrisponde la valuta paypal.

b) Il pagamento viene effettuato tramite eCheck o altri metodi che richiedono un tempo più lungo per cancellare.

c) Paypal decide di cui hanno bisogno di indagare la transazione.


  • È possibile modificare il codice per l'invio di una e-mail ogni volta che una transazione del genere accade, così si potrebbe almeno conoscere e contattare i clienti per informarli sulla situazione.


Per fare ciò, modificare il codice in / paypal / validation.php (linea # 80) Da

elseif ($ _POST ['payment_status'] = 'Completato' & & (Configurazione::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'In attesa'))
$ Errori .= $ paypal-> getL ('pagamento').$_ POST [' payment_statu
s'].'';

A

elseif ($ _POST ['payment_status'] = 'Completato' & & (Configurazione::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'In attesa'))

{
$ Errori .= $ paypal-> getL ('POST pagamento').$_ [' payment_status'].'';
mail ("your@address.com", "errore di pagamento e-mail", "C'è stato un problema con il pagamento, al di sotto è il ritorno da paypal" print_r ($ _POST, true).);
}