Closed sandrocantagallo closed 8 years ago
Ciao @sandrocantagallo , grazie della segnalazione. Provvediamo quanto prima riprodurre il problema e a trovare una soluzione.
Il processo per replicare l'errore è il seguente. Abilitare il modulo Contrassegno impostando Importo nazionale fisso standard = 2.90 Andare sul frontend e registrare un'account utente Procedere con il primo acquisto usando PayPal (sandbox)
Il pagamento andrà a buon fine e senza problemi
Procedere con un nuovo acquisto Pagare con PayPal. L'ordine andrà in errore: The totals of the cart item amounts do not match order amounts (#10413: Transaction refused because of an invalid argument. See additional error messages for details).;
LOG di paypal:
[DoExpressCheckoutPayment] => Array ( [TOKEN] => EC-6TV61835B4286863X [PAYERID] => QTX9H4N83K7J8 [PAYMENTACTION] => Sale [AMT] => 37.80 [CURRENCYCODE] => EUR [BUTTONSOURCE] => Magento_Cart_Community [NOTIFYURL] => http://demo.mysa.it/it/paypal/ipn/ [RETURNFMFDETAILS] => 1 [ITEMAMT] => 34.90 [TAXAMT] => 0.00 [SHIPPINGAMT] => 0.00 [L_NUMBER0] => mysahotergonopag [L_NAME0] => Mysa Hot ErgonoPad [L_QTY0] => 1 [L_AMT0] => 34.90 [METHOD] => DoExpressCheckoutPayment [VERSION] => 72.0 [USER] => **** [PWD] => **** [SIGNATURE] => **** )
Praticamente sul valore AMT viene imputato il valore 2.90 euro il sovraprezzo del contrassegno.
La cosa veramente strana è che a questo punto l'account utente è "bruciato" ovvero anche spegnendo il modulo "Contrassegno" e pulendo il carrello dell'utente, se lo stesso riprova a fare l'ordine vengono lo stesso imputati in maniera sbagliata i 2.90 di extra fee che in realtà non dovrebbe pagare.
Mage/PayPal/Controller/Express/Abstract.php
_initCheckout
se esplodo il getQuote
esce sempre fuori:
[msp_base_cashondelivery] => 2.9000 [msp_cashondelivery] => 2.9000 [msp_base_cashondelivery_incl_tax] => 2.9000 [msp_cashondelivery_incl_tax] => 2.9000
sull'acquisto dell'utente registrato anche se da configurazione setto il valore a 0 e elimino cache e sessioni di magento.
Si, quello è normale, i dati vengono comunque salvati, ma non dovrebbe applicare il totale. Stiamo verificando se ci sono problemi in fase di salvataggio da quote ad order.
Facendo ricerche su DB vedo che nella tabella sales_flatquote viene salvato l'ordine valorizzando in maniera errata i campi msp* e inserendo appunto il valore 2.90
Mi spiego meglio. ho cambiato l'extra fee da 2.9 a 0,00 euro e in fase di ordine del cliente registrato i campi msp_* della tabella sales_flat_quote si sarebbero dovuti aggiornare di conseguenza ma cosi non è avvenuto.
Inoltre scegliendo come metodo di pagamento PayPal questi campi msp_ non si sarebbero proprio dovuti valorizzare o sbaglio ?
Ovviamente siccome questo valore è associato al cliente anche se da frontend gli cancello il carrello e riprovo a fare l'ordine va nuovamente in errore, perchè cambia correttamente i dati dell'ordine ma non i valori salvati nei campi msp_ di questa tabella.
Giusto per test: Hai provato senza il modulo di one step checkout? Temo che non sia una issue del modulo.
Si e a me persiste. Ma ho risolto. Mi sono accorto che sto evidentemente usando una versione obsoleta del vostro modulo.
Il mio problema era nel file: MODEL/QUOTE/total.php
ho verificato in questo repository che è stato inserito il controllo che resetta a 0 i valori dei campi msp_ della tabella che a me mancavano:
if ($_helper->getQuote()->getPayment()->getMethod() != $_model->getCode()) { $address->setMspCashondelivery(0); $address->setMspBaseCashondelivery(0); $address->setMspCashondeliveryInclTax(0); $address->setMspBaseCashondeliveryInclTax(0); $quote->setMspCashondelivery(0); $quote->setMspBaseCashondelivery(0); $quote->setMspCashondeliveryInclTax(0); $quote->setMspBaseCashondeliveryInclTax(0); }
Ti ringrazio per l'assistenza e l'aiuto fornito :)
Versione Magento: 1.9.2.4 Modulo CheckOut: Amasty One Step CheckOut
Errore: Abilitando il modulo Contrassegno con sovrapprezzo fisso impostato su 2.90 euro, il pagamento tramite PayPal Express Checkout va in errore per i soli UTENTI REGISTRATI mostrando la seguente dicitura:
PayPal gateway ha rifiutato la richiesta. The totals of the cart item amounts do not match order amounts (#10413: Transaction refused because of an invalid argument. See additional error messages for details).;
In altre parole, il gateway di pagamento invia correttamente a PayPal le informazioni del pagamento ma al rientro vengono imputati anche i costi di contrassegno che invece non devono essere accreditati.