Magento crea un ordine a livello di codice con il metodo di pagamento paypal


11

Attualmente abbiamo due siti Web indipendenti magento. Uno si sta comportando come vetrina e l'altro come back-end. L'utente può effettuare l'ordine al front-end.

Quindi stesso ordine che sto cercando di creare a livello di codice al back-end. Quando l'utente paga tramite il checkmometodo di pagamento funziona. Ma quando l'utente paga tramite PayPal non funziona. Qualcuno sa come possiamo creare un ordine a livello di codice usando i metodi di pagamento PayPal? E 'possibile 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
    )
});

Errore: il gateway PayPal ha rifiutato la richiesta. Una transazione corretta è già stata completata per questo token (# 10415: Transazione rifiutata a causa di un argomento non valido. Per ulteriori dettagli, vedere i messaggi di errore aggiuntivi).


Risposte:


4

La creazione di un ordine con il metodo di pagamento PayPal effettivo non è possibile, poiché dovrai effettuare un pagamento effettivo. Ecco perché PayPal sta rifiutando la richiesta; dovrai anche inviare un token (per avviare la richiesta) a PayPal in modo che possano verificarlo.

Dato che in realtà non hai bisogno di un secondo pagamento ma ne hai bisogno per la tenuta dei registri (per quanto posso leggere), potrebbe essere saggio creare un metodo di pagamento PayPal falso per l'altra istanza di Magento e impostarlo come metodo di pagamento durante il trasferimento l'ordine.

Come Inchoo lo ha già spiegato in dettaglio (non è così difficile come sembra poiché dovrai solo implementare la parte Magento) Non la copierò / incollerò qui ma ti darò solo il link; http://inchoo.net/magento/how-to-create-magento-payment-module/

Basta chiamarlo "paypal_proxy_payment" o qualcosa del genere e utilizzare quel metodo e sei a posto!


2

Sto condividendo un link nella mia risposta e per favore attraversalo e copia e incolla il codice nel tuo controller personalizzato, quindi devi cambiare il metodo di pagamento

dentro

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

invece di checkmote puoi scrivere il tuo metodo di pagamento.

Per favore, controlla questo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.