Chodź może się to wydawać prostym zadaniem napotkałem kilka problemów już na etapie planowania samego formularza. Chciałbym zrobić formularz zamówienia usług coś jak https://w3-markup.com/order tyle, że tu mamy do czynienia java czego osobiście nie chciałbym dotykać. Tak czy owak zaplanowałem trzy kroki w tym formularzu tj. 1. Wprowadzenie wymaganych danych, 2. Wybór usługi 3. Wybór sposobu płatności i płatność. Myślę raczej, że wcześniej nie powstało rozwiązanie tego typu z powodu posłużenia się kilkoma procesorami płatności online... w każdym razie starałem się znaleźć półprodukt, do którego mógłbym dorobić płatności innymi metodami i w zasadzie znalazłem parę tak zwanych koszyków do Word Press (bo na nim będzie stała docelowo sama strona), ale były bardzo ograniczone lub wątpliwie bezpieczne.

Oto jak sobie to zaplanowałem:
1. Wprowadzenie niezbędnych danych

Dane personalne:
Imię: [----]
Nazwisko: [----]
Adres zamieszkania:
Ulica: [-----]
Numer domu / lokalu: [----] / [----]
Miejscowość: [----]
Kraj: [----]
Numer telefonu stacjonarnego: [----] (opis formatu)
Numer faksu: [----] (opis formatu)
Numer telefonu komórkowego: [----] (opis formatu)
Adres korespondencyjny:
[X] Zaznacz jeśli taki sam jak adres zamieszkania.
Ulica: [-----]
Numer domu / lokalu: [----] / [----]
Miejscowość: [----]
Kraj: [----]

[X] Wyrażam zgodę na przetwarzanie moich danych osobowych w celu realizacji zamówienia ...

[X] Zapoznałem(-am) się z treścią Regulaminu (link do regulaminu) serwisu ...

[Dalej >>]

2. Wybór usługi

[x] Usluga 1 cena: xxx PLN
Krótki opis usługi

[x] Usługa 2 cena: xxx PLN
Krótki opis usług

[x] Usługa 3 cena: xxx PLN
Krótki opis usług

[x] Usługa 4 cena: xxx PLN
Krótki opis usług

[x] Usługa 5 cena: xxx PLN
Krótki opis usług

[x] Usługa 6 cena: xxx PLN
Krótki opis usług

[x] Usługa 7 cena: xxx PLN
Krótki opis usług

[x] Usługa przekierowania poczty 1 cena: xxx PLN
Krótki opis usług
Przekierować pocztę na adres: [>]Wzbierz ]
[korespondencyjny]
[zamieszkania ]

[x] Usługa przekierowania poczty 2 cena: xxx PLN
Krótki opis usług
Przekierować pocztę na adres: [>]Wzbierz ]
[korespondencyjny]
[zamieszkania ]

[x] Usługa przekierowania poczty 3 cena: xxx PLN
Krótki opis usług
Przekierować pocztę na adres: [>]Wzbierz ]
[korespondencyjny]
[zamieszkania ]

[<<Wstecz] [Dalej >>]

Problem jaki nasówa się w tym kroku jak i w następnym to bezpieczne przeliczanie walut jako, że za usługi te muszę zapłacić w dolarach amerykańskich chciałbym nie być w plecy z powodu kursu USD do PLN zatem wymyśliłem, że cena będzie ustalana automatycznie na podstawie kursu któregoś z banków bo obliczanie dla każdego z osobna trochę mija się z celem. Do wyznaczenia kursu wziąłem mBank (http://www.mbank.pl/przewodnik/kurs_walut/) tabele kursów są w miarę przejrzyste i można dość łatwo wyłowić to co trzeba. Oczywiście z interesuje mnie kurs sprzedaży USD + 0,15 PLN z uwagi na ryzyko skoku kursu zwłaszcza kiedy zamówienie jest opłacane w weekend i ma dużą wartość to nie jest parę złoty.

Zrobiłem co takiego:

  1. <?php
  2. mbank_dolar();
  3.  
  4. function mbank_dolar()
  5. { $rx = '~<td .*>1 USD</td>[r\ns]*<td .*/td>[r\ns]*<td .*>(.*)</td>~isU';
  6. $file = 'kursdolara.txt';
  7.  
  8. $ch = curl_init();
  9. curl_setopt($ch, CURLOPT_URL, 'http://www.mbank.pl/przewodnik/kurs_walut/');
  10. curl_setopt($ch, CURLOPT_HEADER, 0);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  12. curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
  13. curl_setopt($ch, CURLOPT_MAXREDIRS,10);
  14. curl_setopt($ch, CURLOPT_TIMEOUT, 20); // timeout in seconds
  15. $output = curl_exec($ch);
  16. #echo ($output);
  17. if (!curl_errno($ch))
  18. { if ($kurs = preg_match($rx, $output, $match))
  19.  #echo $match[0];
  20. file_put_contents($file, $match[1]);
  21. }
  22. curl_close($ch);
  23. }
  24.  
  25. ?>

Nie jest to doskonałe rozwiązanie z paru względów: 1. Zapisuje w .txt winksmiley.jpg, 2. Nie operuje na wielu tabelach (kursy walut mogą się zmieniać kilka razy dziennie), 3. Jest problem z dniami wolnymi - mBank nie pokazuje żadnej tabeli.

Tak czy owak chciałbym aby wyglądało to w tej sposób, że wpisuje kwotę mojego kosztu w USD danej usługi i ta cześć obliczana jest automatycznie na podstawie ostatniego kursu sprzedaży USD wg. tabeli mBanku + 0,15 PLN zaokrąglaną w górę do pełnej złotówki oraz swoją prowizję za tę usługę w złotych w ten sposób w formularzu powstała by cena końcowa jaką klient musi zapłacić za daną usługę.

3. Wybór sposobu płatności i płatność

Jest to ostatni, a jednocześnie najtrudniejszy krok w całym formularzu tj. integracja z trzema niezależnymi procesorami płatności. W Polsce jest tak, że żaden z nich nie obsługuje wszystkiego zatem trzeba skorzystać z trzech co jest pewną trudnością bo każdy jest inny, a klienci mają różne konta i chcieliby płacić tak jak jest im najwygodniej. Będę wdzięczny jeśli ktoś ma jakieś rady w tej materii gdyż nigdy wcześniej nie robiłem integracji różnych forma płatności w jedno.

Platnosci.pl

ING Online
mTransfer
Płacę z Inteligo
MultiTransfer
Przelew24
Pekao24 przelew
Płacę z PKO
BPH
Nordea
Lukas e-przelew
Karta Kredytowa

DotPay.pl

Millenet
KB24
Deutsche Bank
CitiBank
BOŚBank24
eBGŻ
InvestBank
Fortis Bank Planet
VW Bank Direct

Zapłać w Żabce
Moje Rachunki
Kupony Ukash

PayPal

Przelew PayPal
Karta kredytowa