belialek Posted January 21, 2013 Share Posted January 21, 2013 Witam, Mam problem, z którym nie mogę sobie poradzić w żaden sposób - podczas wykonywania zakupów w innej walucie niż PLN, kwota przekazywana do zapłaty (moduł Przelewy24) zostaje przeliczona zgodnie z kursem ustawionym w Prescie ale waluta w dalszym ciągu to PLN. W rezultacie towar wart np 100 PLN, zostaje przez Prestę poprawnie przeliczony na 23.99 EUR, natomiast wg modułu przelewy24 jest to 23.99 PLN i taka kwota widnieje w każdej formie płatności oferowanej przez tego usługodawcę... Tak jakby po drodze była gubiona/ignorowana informacja o walucie. Będę wdzieczny za każdą sugestię... Link to comment Share on other sites More sharing options...
m.andrzejak Posted January 25, 2013 Share Posted January 25, 2013 (edited) Witam, Znam ten ból, trzeba wprowadzić kilka zmian w kodzie: w pliku przelewy24.php zaraz przed deklaracją zmiennych ...$smarty->assign... Dodałem kilka dodatkowych zmiennych: $validate_kwota = ceil($kwota/$ratecurrency); //Kwoty do wyświetlenia w złotówkach 123/100=1.23zł $show_kwota = $kwota/100; $show_validate_kwota = $validate_kwota/100; Następnie wysyłam je dalej: $smarty->assign ( array ( 'p24_session_id'=> $cart->id.'|'.$s_sid,//$sid, 'p24_id_sprzedawcy'=>Configuration::get('P24_ID_SPRZEDAWCY'), 'p24_cena_w_walucie'=>$show_kwota, 'p24_przelicznik_waluty'=>$ratecurrency, 'p24_cena_przeliczona_pln'=>$show_validate_kwota, 'p24_iso_waluty'=>$currency_iso_code, 'p24_kwota'=>$validate_kwota, 'p24_opis'=> $s_descr, 'p24_klient'=>$customer->firstname.' '.$customer->lastname, 'p24_adres'=>$address->address1." ".$address->address2, 'p24_kod'=>$address->postcode, 'p24_miasto'=>$address->city, 'p24_language'=>strtolower($s_lang->iso_code), 'p24_kraj'=>$s_lang->iso_code, 'p24_email'=>$customer->email, 'p24_return_url_ok' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'/modules/przelewy24/validation_prestashop_ok.php', 'p24_return_url_error' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'/modules/przelewy24/validation_prestashop_error.php' ) ); Następnie edytujemy plik pay.tpl i dodajemy do wyświetlenia/przesłania do walidacji nasze nowe zmienne: {if $p24_iso_waluty != 'PLN'} <p>{$p24_cena_w_walucie} {$p24_iso_waluty} = {$p24_cena_przeliczona_pln} PLN</p> {/if} <form action="https://secure.przelewy24.pl" method="post" id="przelewy24Form" name="przelewy24Form" accept-charset="iso-8859-2"> <input type="hidden" name="p24_session_id" value="{$p24_session_id}" /> <input type="hidden" name="p24_id_sprzedawcy" value="{$p24_id_sprzedawcy}" /> <input type="hidden" name="p24_kwota" value="{$p24_kwota}" /> <input type="hidden" name="p24_opis" value="{$p24_opis}" /> <input type="hidden" name="p24_klient" value="{$p24_klient}" /> <input type="hidden" name="p24_adres" value="{$p24_adres}" /> <input type="hidden" name="p24_kod" value="{$p24_kod}" /> <input type="hidden" name="p24_miasto" value="{$p24_miasto}" /> <input type="hidden" name="p24_kraj" value="{$p24_kraj}" /> <input type="hidden" name="p24_email" value="{$p24_email}" /> <input type="hidden" name="p24_language" value="{$p24_language}" /> <input type="hidden" name="p24_return_url_ok" value="{$p24_return_url_ok}" /> <input type="hidden" name="p24_return_url_error" value="{$p24_return_url_error}" /> <p class="cart_navigation"> <a href="{$base_dir_ssl}order.php?step=3" class="button_large">{l s='Other payment methods' mod='przelewy24'}</a> <input type="submit" name="submit" value="{l s='I confirm my order' mod='przelewy24'}" class="exclusive_large" /> </p> </form> To są wycinki kodu, powinieneś sobie z tym poradzić, ja dodałem opcję, że kiedy klient złoży zamówienie w walucie innej niż PLN, to przed potwierdzeniem wyświetla mu się kwota przeliczona na złotówki. Pozdrawiam, Marcos. Edited January 25, 2013 by m.andrzejak (see edit history) Link to comment Share on other sites More sharing options...
kapees Posted April 30, 2013 Share Posted April 30, 2013 Cześć Marcos, Nie miałbyś nic przeciwko aby podesłać nam te poprawione pliki? Próbowałem to zrobić ale coś mi się wywala szablon później i nadal nie przelicza Dzięki! Krzysiek Link to comment Share on other sites More sharing options...
Mikele Posted May 1, 2013 Share Posted May 1, 2013 Witam, Posiadam wersje Presty 1.5.4.0. Próbuję przystosować moduł "Przelewy24". Prawie się udało, ale... Kiedy klikam na "Potwierdzam zamówienie" (źródło: pay.tpl), powinno przetwarzac plik - pay_send.php, a pojawia się błąd o treści: Warning: Function isLogged() is deprecated in /home/....adres sklepu...../modules/przelewy24/pay_send.php on line 23 in /home/....adres sklepu...../classes/Tools.php on line 1843 Cart cannot be loaded or an order has already been placed using this cart Kod pay_send.php: <?php /* SSL Management */ $useSSL = true; include(dirname(__FILE__).'/../../config/config.inc.php'); //require_once(dirname(__FILE__).'/../../init.php'); //$fc=new FrontController(); //$fc -> setmedia(); //include(dirname(__FILE__).'/../../header.php'); include(dirname(__FILE__).'/przelewy24.php'); if (!$cookie->isLogged()) Tools::redirect('authentication.php?back=order.php'); $o_przelewy24 = new Przelewy24(); //echo $o_przelewy24->execPayment($cart); $customer = new Customer((int)($cart->id_customer)); $sa_sid=explode('|',$_POST["p24_session_id"]); $o_order=Db::getInstance()->getRow('SELECT `i_id_order`,`i_amount` FROM `przelewy24_amount` WHERE `s_sid`="'.$sa_sid[1].'"'); $kwota = $o_order['i_amount'];// WYNIK POBRANY Z TWOJEJ BAZY (w groszach) $i_id_order = $o_order['i_id_order']; $opis = "przelewy24.pl"; $id_order = $o_przelewy24->validateOrder((int)$i_id_order, 1, $kwota, 'przelewy24.pl', NULL, array(), NULL, false, $customer->secure_key); //$id_order = $this->validateOrder((int)$cart->id, 1, $kwota, $this->displayName, NULL, array(), NULL, false, $customer->secure_key); ?> <html><head></head><body onload="document.getElementById('przelewy24').submit();" > <p> <form id="przelewy24" action="https://<?php echo $_POST["p24_url"] ?>" method="post" id="przelewy24Form" name="przelewy24Form" accept-charset="iso-8859-2"> <input type="hidden" name="p24_session_id" value="<?php echo $_POST["p24_session_id"] ?>"/> <input type="hidden" name="p24_id_sprzedawcy" value="<?php echo $_POST["p24_id_sprzedawcy"] ?>" /> <input type="hidden" name="p24_kwota" value="<?php echo $_POST["p24_kwota"] ?>" /> <input type="hidden" name="p24_opis" value="<?php echo $_POST["p24_opis"] ?>" /> <input type="hidden" name="p24_klient" value="<?php echo $_POST["p24_klient"] ?>" /> <input type="hidden" name="p24_adres" value="<?php echo $_POST["p24_adres"] ?>" /> <input type="hidden" name="p24_kod" value="<?php echo $_POST["p24_kod"] ?>" /> <input type="hidden" name="p24_miasto" value="<?php echo $_POST["p24_miasto"] ?>" /> <input type="hidden" name="p24_kraj" value="<?php echo $_POST["p24_kraj"] ?>" /> <input type="hidden" name="p24_email" value="<?php echo $_POST["p24_email"] ?>" /> <input type="hidden" name="p24_language" value="<?php echo $_POST["p24_language"] ?>" /> <input type="hidden" name="p24_return_url_ok" value="<?php echo $_POST["p24_return_url_ok"] ?>" /> <input type="hidden" name="p24_return_url_error" value="<?php echo $_POST["p24_return_url_error"] ?>" /> <p class="cart_navigation"> </p> </form><p>Przekierowanie na stronę serwisu przelewy24.pl...</p> <?php //include_once(dirname(__FILE__).'/../../footer.php'); ?> Kiedy wyłącze fragment kodu: //if (!$cookie->isLogged()) // Tools::redirect('authentication.php?back=order.php'); Zostaje tylko błąd: Cart cannot be loaded or an order has already been placed using this cart Czy jest ktoś w stanie pomóc w rozwiązaniu tego problemu? Link to comment Share on other sites More sharing options...
vekia Posted May 2, 2013 Share Posted May 2, 2013 witaj kod if (!$cookie->isLogged()) zastąp tym: $context = Context::getContext(); if (!$context->customer->isLogged()) wszystko dlatego, że w prestashop 1.5 odeszło się od obiektu $cookie, wprowadzony został tzw. context problem z deprecated powinien zniknąć, zobaczmy co wyjdzie z tym drugim Link to comment Share on other sites More sharing options...
Mikele Posted May 7, 2013 Share Posted May 7, 2013 (edited) Zgadza się problem z deprecated zniknął ale pozostaje ten drugi. "Cart cannot be loaded or an order has already been placed using this cart". Czemu to nie chce przejść dalej? Pomoc techniczna "przelewy24" nie raczy żadnego słowa odpisać na zapytanie o aktualizację modułu do nowszych wersji presty. Czy istnieje jakikolwiek moduł płatności który działa z wersją 1.5.4.0 ? Edited May 14, 2013 by Mikele (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now