Corrigir problemas de Paypal
Esta página foi escrita em Inglês, consulte a versão em Inglês para as mudanças de código correto.
As dicas a seguir foram escritas para Prestashop 1.2 e 1.3, se você estiver usando qualquer versão do Prestashop 1.4, certifique-se de obter a última versão do módulo de paypal (disponível gratuitamente no http://addons.prestashop.com/en/payments- gateways/1748-paypal.html)
1) O problema mais comum com as ordens paypal não aparecendo acontece quando paypal não pode acessar seu servidor, o arquivo / pasta permissões estão incorretas, ou se sua conta paypal não é verificada.
Verifique se as seguintes condições estão corretas:
· O seu shop não está no modo de manutenção (se ninguém pode acessar seu site, o site paypal não será capaz de qualquer um).
· Não existe a proteção por senha em seu site (mesmo motivo acima).
· Tente abrir esta página a partir do navegador - http://www.yoursite.com/modules/paypal/validation.php,se você receber um erro (erro 500, a página não pode ser exibida), do que este significa que você tem um problema de permissão de arquivo. Muito provavelmente, o diretório de paypal ou o diretório de módulos inteiro é definida como 777 e seu anfitrião não permite que (ele não é seguro); tente modificá-lo para 755. Você também pode verificar log do seu servidor de erro (a partir do seu cPanel) para obter o erro exato.
· Verifique se sua conta paypal é verificado, caso contrário, as operações não ficam automaticamente aprovados e prestashop mostrará um erro de pagamento.
2) O problema do modo mais comum Sandbox com o módulo de paypal é que as ordens não estão aparecendo na loja.
A razão para isso é o módulo do paypal está definido para criar ordens somente se a resposta que ele obtém a partir do site paypal é "Completed", no entanto, quando rodando em modo Sandbox, paypal envia uma resposta de "Pendente".
Temos lido alguma documentação sobre como alterar a conta sandbox para enviar uma resposta "Completed", mas mesmo depois de tentar que, ainda apareceu como pagamentos pendentes.
A fim de consertar isso, faça a seguinte alteração no / modules / paypal / validation.php linha # 80.
Ela permitirá uma ordem com um status "pendente" para percorrer, mas apenas em modo seguro.
elseif ($ _POST ['PAYMENT_STATUS']! = 'Completed')
Deve ser alterado para
elseif ($ _POST ['PAYMENT_STATUS'] = 'Completed' & & (Configuration::! get ('PAYPAL_SANDBOX') | | $ _POST ['PAYMENT_STATUS'] = 'pendente'))
3) Outro problema comum é que as ordens que são colocados no modo de viver não aparecem no backoffice, mas o cliente ainda recebe cobrado.
Este é frequentemente o caso porque a resposta do paypal não é "Concluído".
Poderia haver muitas razões para isso, os principais que encontramos são:
a) A sua moeda padrão em Prestashop não corresponde a sua moeda paypal.
b) O pagamento é feito usando Echeck ou outros métodos que exigem mais tempo para limpar.
c) Paypal decide que eles precisam para investigar a transação.
Para isso, alterar o código em / paypal / validation.php (linha # 80) De
elseif ($ _POST ['PAYMENT_STATUS'] = 'Completed' & & (Configuration::! get ('PAYPAL_SANDBOX') | | $ _POST ['PAYMENT_STATUS'] = 'pendente'))
$ Errors .= $ paypal-> getL ('POST pagamento').$_ [' payment_status'].'';
Para
elseif ($ _POST ['PAYMENT_STATUS'] = 'Completed' & & (Configuration::! get ('PAYPAL_SANDBOX') | | $ _POST ['PAYMENT_STATUS'] = 'pendente'))
{
$ Errors .= $ paypal-> getL ('POST pagamento').$_ [' PAYMENT_STATUS'].'';
mail ("your@address.com", "erro de pagamento e-mail", "Houve um problema com o pagamento, abaixo é o retorno do paypal" print_r ($ _POST, true).);
}