Livezilla

Certified Partner and
PrestaShop Developer for:

Corrigir problemas de Paypal em Prestashop

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.


  • Você pode modificar o código para enviar um e-mail sempre que uma transação como essa acontece, então você poderia ao menos saber sobre ele e em contato com o cliente para informá-los sobre a situaçã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_statu
s'].'';

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).);
}