doigro Posted February 15, 2013 Share Posted February 15, 2013 (edited) Am un modul MobilPay descarcat din secţiunea implementare la care ar trebui făcută o modificare. În acest moment, dacă ai moneda de bază leul, tranzacţia se finalizează cu succes şi corect. Dacă însă ai moneda de bază euro, modulul calculează transformarea în lei de două ori. Am un produs de 10 euro la 4.4 lei per euro adica 44 lei. Spre pagina de finalizare a plăţii se transmite valoarea de 193,6 lei. 10 euro x 4,4= 44 lei x 4,4 = 193,6 lei Cei de la MP mi-au sugerat să îl modific singur: Suma de plata se seteaza prin $objPmReqCard->invoice->amount = number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency), 2, '.', ''); Probabil acea metoda converPrice face a doua conversie, deci $objPmReqCard->invoice->amount = number_format($params['cart']->getOrderTotal(true, 3), 2, '.', ''); ar trebui sa mearga Nu mă pricep la programare... Mă poate ajuta cineva cu această modificare? Folosesc PS 1.5.3.1 Modul Prestashop - Credit card.zip Edited February 15, 2013 by doigro (see edit history) Link to comment Share on other sites More sharing options...
Cornel_M Posted February 22, 2013 Share Posted February 22, 2013 Salut doigro! cum ai reusit sa-l faci sa apara in FO ca optiune de plata? mai multa lume se plange ca nu merge, iar cei de la MobilPay recunosc ca pe 1.5 nu e compatibil. 1 Link to comment Share on other sites More sharing options...
Netopia_mobilPay Posted February 22, 2013 Share Posted February 22, 2013 Salut. Gasiti un modul actualizat pentru Prestashop 1.5.3 in contul mobilPay, sectiunea Implementare - Exemple de implementare Link to comment Share on other sites More sharing options...
elyyza Posted March 18, 2013 Share Posted March 18, 2013 Buna ai reusit sa il faci sa functioneze corect pentru euro? aceeasi recomandare am primit-o si eu de la mobilpay. Multumesc, o seara placuta Link to comment Share on other sites More sharing options...
Cornel_M Posted March 19, 2013 Share Posted March 19, 2013 Buna ai reusit sa il faci sa functioneze corect pentru euro? aceeasi recomandare am primit-o si eu de la mobilpay. Multumesc, o seara placuta te referi la plata in euro sau daca ai euro ca moneda default in BO? Link to comment Share on other sites More sharing options...
Cornel_M Posted March 19, 2013 Share Posted March 19, 2013 Am un modul MobilPay descarcat din secţiunea implementare la care ar trebui făcută o modificare. În acest moment, dacă ai moneda de bază leul, tranzacţia se finalizează cu succes şi corect. Dacă însă ai moneda de bază euro, modulul calculează transformarea în lei de două ori. Am un produs de 10 euro la 4.4 lei per euro adica 44 lei. Spre pagina de finalizare a plăţii se transmite valoarea de 193,6 lei. 10 euro x 4,4= 44 lei x 4,4 = 193,6 lei Cei de la MP mi-au sugerat să îl modific singur: Suma de plata se seteaza prin $objPmReqCard->invoice->amount = number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency), 2, '.', ''); Probabil acea metoda converPrice face a doua conversie, deci $objPmReqCard->invoice->amount = number_format($params['cart']->getOrderTotal(true, 3), 2, '.', ''); ar trebui sa mearga Nu mă pricep la programare... Mă poate ajuta cineva cu această modificare? Folosesc PS 1.5.3.1 in mobilpay_cc.php intre liniile 350-360 sunt regulile de conversie. le modifici ca mai jos si nu mai face inmultirea cu 4,39 // if($currency_default->iso_code == 'EUR' && $currency->iso_code != 'EUR') { //convert prices manually // $objPmReqCard->invoice->amount = round($params['cart']->getOrderTotal(true, 3) * 1/$currency->conversion_rate, 2); // } // else { // $objPmReqCard->invoice->amount = Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency); // } //nu mai facem conversie deloc $objPmReqCard->invoice->amount = $params['cart']->getOrderTotal(true, 3); 1 Link to comment Share on other sites More sharing options...
MVP Posted December 8, 2014 Share Posted December 8, 2014 in mobilpay_cc.php intre liniile 350-360 sunt regulile de conversie. le modifici ca mai jos si nu mai face inmultirea cu 4,39 // if($currency_default->iso_code == 'EUR' && $currency->iso_code != 'EUR') { //convert prices manually // $objPmReqCard->invoice->amount = round($params['cart']->getOrderTotal(true, 3) * 1/$currency->conversion_rate, 2); // } // else { // $objPmReqCard->invoice->amount = Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency); // } //nu mai facem conversie deloc $objPmReqCard->invoice->amount = $params['cart']->getOrderTotal(true, 3); Mulțumesc pentru postare, mi-a fost foarte utilă, chiar și după atâta timp! Mă loveam de problema conversiei EUR-Leu cu înmulțirea repetată a sumei. În acest moment mai am o mică diferență între totalul coșului și suma de plată în Sandboxul mobilPay. În backoffice introduc prețurile produselor în Euro, iar rata de conversie am setat-o la 4,5 lei. Se pare că undeva am omis ceva. Liniile mele de cod arată astfel: if($currency_default->iso_code == 'EUR' && $currency->iso_code != 'EUR') { //convert prices manually $objPmReqCard->invoice->amount = round($params['cart']->getOrderTotal(true, 3) * 1/$currency->conversion_rate, 2); } else { $objPmReqCard->invoice->amount = Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency); } //nu mai facem conversie deloc //$objPmReqCard->invoice->amount = $params['cart']->getOrderTotal(true, 3); Link to comment Share on other sites More sharing options...
Recommended Posts