Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błąd w skrypcie? Przeliczanie wartości zamówienia., Platforma Baselinker
xaitras
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 27.06.2017

Ostrzeżenie: (0%)
-----


Witam wszystkich

Dzisiaj mam inny problem. Piszę skrypt do walidacji pól zamówień.

Skrypt m.in. sprawdza czy kwota wpłacona przez klienta jest zgodna z wartością zamówienia. Czasami zdarza się, że klient nie opłaci zamówienia, zapłaci za mało lub za dużo.
Jeśli uruchomię skrypt a w zamówieniu nie jest podany koszt przesyłki to wartość produktów może być w tym momencie dowolna.
Sytuacja się komplikuje jeśli ustawię koszt przesyłki na równą kwotę np. 17.00 zł a wartość produktu jest ustawiona np. na 9.99 zł
Wtedy pomimo, że wpłacona kwota równa się wartości zamówienia, skrypt zwraca błąd.

Błąd występuje tylko w przypadku kiedy w grę wchodzą koszty przesyłki. Na początku myślałem, że kwoty różnią się po przeliczeniu o 1 grosz, że któraś zostaje "zaokrąglona",
ale po dodaniu "echo" do skryptu okazało się, że są identyczne.

Nie wiem gdzie się pomyliłem..

Podaję fragment kodu (w wielkim uproszczeniu):

  1. $cena_przesylki = $orders['delivery_price'];
  2. $wplacono = $orders['payment_done'];
  3.  
  4.  
  5. $wartosc_produktow='0';
  6. foreach($orders['products'] as $products) {
  7. $cena_brutto_produktu=$products1['price_brutto'];
  8. $ilosc_szt=$products['quantity'];
  9. $wartosc_produktu=$cena_brutto_produktu * $ilosc_szt;
  10. $wartosc_produktow+=$wartosc_produktu;
  11. }
  12. $wartosc_zamowienia=$wartosc_produktow+$cena_przesylki;
  13.  
  14. if($wplacono !== $wartosc_zamowienia)
  15. {
  16.  
  17. BŁĄD
  18.  
  19. }


Wszystkie wartości pobierane są przez api baselinkera.
Dodam tylko, że cała reszta działa bez zarzutu.

Proszę o pomoc
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 09:18