Atualmente, temos dois sites independentes de magento. Um está se comportando como vitrine e outro como back-end. O usuário pode fazer o pedido no front-end.
Então, a mesma ordem que estou tentando criar programaticamente no back-end. Quando o usuário paga através do checkmo
método de pagamento, ele funciona. Mas quando o usuário paga através do PayPal, ele não está funcionando. Alguém sabe como podemos criar pedidos de forma programática usando os métodos de pagamento do PayPal? É possível ou não?
$quote->getPayment()->importData(array(3) {
[method] => paypal_express
[last_trans_id] => 65Y31421KL2753028
[additional_information] => Array
(
[paypal_express_checkout_shipping_method] =>
[paypal_payer_id] => 5LX84SUFY39L4
[paypal_payer_email] => abbas-buyer-2@bluewisesoft.com
[paypal_payer_status] => verified
[paypal_address_status] => Confirmed
[paypal_correlation_id] => b78b4e5e6e527
[paypal_express_checkout_payer_id] => 5LX84SUFY39L4
[paypal_express_checkout_token] => EC-7P402752023166448
[paypal_express_checkout_redirect_required] =>
[paypal_protection_eligibility] => Eligible
[paypal_payment_status] => pending
[paypal_pending_reason] => authorization
)
});
Erro: o gateway do PayPal rejeitou a solicitação. Uma transação bem-sucedida já foi concluída para este token (# 10415: Transação recusada devido a um argumento inválido. Consulte as mensagens de erro adicionais para obter detalhes).
Respostas:
Não é possível criar um pedido com o método de pagamento real do PayPal, pois você precisará fazer um pagamento real. É por isso que o PayPal está rejeitando a solicitação; você também precisará enviar um token (para iniciar a solicitação) ao PayPal para que eles possam verificá-lo.
Como você realmente não precisa de um segundo pagamento, mas precisa dele para manter registros (até onde eu sei), pode ser sensato criar um método de pagamento falso do PayPal para a outra instância do Magento e defini-lo como um método de pagamento ao transferir a ordem.
Como o Inchoo já explicou isso em detalhes (não é tão difícil quanto parece, pois você só precisará implementar a parte Magento). Não vou copiar / colar aqui, mas apenas fornecer o link; http://inchoo.net/magento/how-to-create-magento-payment-module/
Basta chamá-lo de 'paypal_proxy_payment' ou algo assim e usar esse método e pronto!
fonte
Estou compartilhando um link na minha resposta e, por favor, passe por ele e copie e cole o código no seu controlador personalizado, então você precisará alterar a forma de pagamento
dentro
em vez de
checkmo
você pode escrever sua forma de pagamento.Por favor, verifique isso.
fonte