Jump to content

Adaptare Modul Mobilpay


doigro

Recommended Posts

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 by doigro (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...
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);

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

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

×
×
  • Create New...