Magento crea pedidos mediante programación con el método de pago de PayPal

11

Actualmente tenemos dos sitios web independientes de magento. Uno se comporta como escaparate y otro como back end. El usuario puede realizar el pedido en la parte frontal.

Así mismo orden que estoy tratando de crear mediante programación en el back-end. Cuando el usuario paga a través del checkmométodo de pago, funciona. Pero cuando el usuario paga a través de PayPal no funciona. Entonces, ¿alguien sabe cómo podemos crear pedidos mediante programación utilizando los métodos de pago de PayPal? ¿Es posible o no?

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

Error: la puerta de enlace de PayPal ha rechazado la solicitud. Ya se ha completado una transacción exitosa para este token (# 10415: Transacción rechazada debido a un argumento no válido. Consulte los mensajes de error adicionales para obtener más detalles).

Abbas
fuente
Una pregunta similar ha respondido aquí: magento.stackexchange.com/questions/211783/…
Sreejith Gopinath

Respuestas:

4

No es posible crear un pedido con el método de pago real de PayPal, ya que deberá realizar un pago real. Es por eso que PayPal rechaza la solicitud; También deberá enviar un token (para iniciar la solicitud) a PayPal para que puedan verificarlo.

Como en realidad no necesita un segundo pago, pero lo necesita para mantener registros (por lo que puedo leer), sería aconsejable crear un método de pago falso de PayPal para la otra instancia de Magento y establecerlo como método de pago al transferir el orden.

Como Inchoo ya explicó esto en detalle (no es tan difícil como parece, ya que solo necesitará implementar la parte de Magento) No lo copiaré / pegaré aquí, solo le daré el enlace; http://inchoo.net/magento/how-to-create-magento-payment-module/

¡Solo llámalo 'paypal_proxy_payment' o algo así y usa ese método y listo!

Peter Jaap Blaakmeer
fuente
2

Estoy compartiendo un enlace en mi respuesta y revíselo y solo copie y pegue el código en su controlador personalizado, luego debe cambiar el método de pago

dentro

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

en lugar de checkmousted puede escribir su método de pago.

Por favor verifica esto.

Asheem Patro
fuente