Magento criar pedidos programaticamente com o método de pagamento paypal


11

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 checkmomé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:


4

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!


2

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

$this->orderData = array(
    'session'       => array(
        'customer_id'   => $this->_sourceCustomer->getId(),
        'store_id'      => $this->_storeId,
        ),
    'payment'       => array(
        'method'    => 'checkmo',
         ),
    );

em vez de checkmovocê pode escrever sua forma de pagamento.

Por favor, verifique isso.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.