Jak działają platnosci.pl w skrócie
Oczywiście pisząc moduł dobrze się zapoznać z dokumentacją techniczną, ale chodzi mi o skrót, który wygląda mniej więcej tak:1. Nasz skrypt wysyła POST na stronę platnosci.pl z parametrami, z których obowiązkowe to:
- pos_id - numer tzw POSa (punktu usługowego), czyli jakby jednostki przez którą ma to iść, można takich tworzyć wiele na jednym koncie i różnie je konfigurować,
- pos_auth_key - kod autoryzacyjny nadany przez serwis płatności,
- session_id - unikalny identyfikator,
- amount - kwota zakupu w groszach,
- desc - krótki opis,
- js - info, czy przeglądarka klienta obsługuje JS
- first_name, last_name, client_ip, email - czyli wiadomo.
2. Klient coś tam sobie klika po ich stronie i na końcu jest przekierowany na jeden z dwóch adresów, które podajemy w konfiguracji:
- pierwszy jest w sytuacji jak wszystko poszło OK np: mojadomena.pl/ok.php
- drugi w sytuacji kiedy coś nawaliło np: mojadomena.pl/error.php
do obydwu adresów mogą być przekazane dodatkowe parametry GETem np: mojadomena.pl/error.php?error=%error_id%&order_id=%order_id%
UWAGA PRZEKIEROWANIE NA ok.php NIE OZNACZA, ŻE MAMY JUŻ KASĘ NA KONCIE - OZNACZA, ŻE RACZEJ POSZŁO OK, ALE TRZEBA TO SPRAWDZIĆ.
3. Ostatni etap to sprawdzanie statusów płatności. Nie potrzebujemy do tego crona. Platnosci.pl same informują nas o tym, że zaszła zmiana i wtedy musimy ją pobrać. Służy do tego 3 skrypt: mojadomena.pl/online.php Jest on wywoływany przez pltnosci.pl w momencie gdy zajdzie jakaś zmiana i wtedy on sam powinien zapytać płatności o zmianę i ją obsłużyć.
implementacja
ad1. Ta część jest prosta i zrealizuje ją prosty formularz, przykładowy jest w klasie platnoscipl - mojego autorstwa, ale mocno inspirowana klasą z prestashopa ;)w metodzie: orderForm(). Prawie identyczny formularz jest w dokumentacji platnosci.pl. Przed wyświetleniem formularza należy stworzyć order metodą podobną do: createOrder(); żeby się ustawiły pola w klasie platnoscipl wykorzystywane w formularzu;]ad2. Jako error.php i ok.php posłuży skrypt z szablonem naszej strony, który w części głównej wypluje coś w rodzaju: ok.php jest analogiczny, tylko bez errora i z weselszym tytułem, więc nie piszę...
ad3. I na koniec zostaje plik komunikujący się "na serio" z płatnościami: online.php - też mój, ale wykorzystane fragmenty kodu modułu płatności do prestashopa, bo tak prościej.
Pliki są wycięte z wersji beta aplikacji, którą piszę, następnie okrojone i dodatkowo okomentowane i po tym okrojeniu już nie testowane, więc mogły wkraść się drobne błędy ;) Myślę, że z nimi dużo łatwiej niż z samą treścią dokumentacji ;)
Dzięki,przydało się..
OdpowiedzUsuńdzieki zobacze co wyklece :)
OdpowiedzUsuńWitam,
OdpowiedzUsuńOkey, ale jak pokonać pierwszy krok czyli wysłanie formularza do bazy z jednoczesnym wywołaniem tego linku do płatności.pl.
Dziękuje za pomoc,
Adam
yy :) rozumiem, że chodzi Ci o to, że nie możesz wysłać jednocześnie posta do siebie i do płatności?? można wysłać jakoś dziwacznie, ale najczęściej jest to robione tak, że wysyłasz posta do siebie i wyświetlasz drugi formularz, a w nim wszystkie wartości w input hidden Twój skkrypt wyświetla taki formularz i nap napis: "za chwilkę zostaniesz przekierowany do fajnych płatności ;)" a pod formularzem jest skrypt: document.forms['formularz'].submit(); albo jeszcze to wywołane z jakimś setTimeout żeby zdążył przeczytać... Czyli na prawdę są to 2 kroki, ale jeden automatyczny ;) BTW warto dodać do tego formularza zwykły przyckisk typu - "kliknij jeśli nie zostałeś automatycznie przekierowany", bo czasem jakiś błąd w skryptach, wtyczka czy cóś może spowodować wysypanie skryptu ;) Nie wiem czy to jest najlepsze, ale takie się spotyka w magento tak jest zrobione, w modułach wordpressa gdzieś widziałem... można też najpierw zapisać sobie wszystko w bazie, a potem wywalić taki sam formularz z przyciskiem zapłać przez ppl - tak jest chyba w prestashop...
OdpowiedzUsuńMiałem straszny problem z wysłaniem POSTem zapytania i odczytaniem odpowiedzi.
OdpowiedzUsuńNie dawałem rady klasycznym do_post_request, dopiero Twoje rozwiązanie mi pomogło. Po stoktroć dzięki
dzięki
OdpowiedzUsuńZastanawiam się, po co skrypt "komunikujący się na serio z płatnościami". Chodzi mi o ten fragment z wysyłaniem post samemu do platnosci.pl by potwierdzić status.
OdpowiedzUsuńWydaje mi się to niepotrzebne, skoro platnosci.pl same przysyłają tę informację do online.php. A ponieważ przysyłają jeszcze dodatkowo jakieś autoryzacyjne kody, to nikt nie podrobi żądania.
Ten komentarz został usunięty przez autora.
OdpowiedzUsuńThank you for your article! I hope you will help me :(
OdpowiedzUsuńin online.php - there are 3 steps yes?
1. platnosci sends POST data - I check sig, pos_id, etc
2. I send platnosci /paygw/ISO/Payment/get with pos_id, session_id, etc
3. platnosci sends text file with status and trans_xx parameters
This works and I get a status OK at step 3. The problem is step 1 (platnosci sends POST) repeats 100x and I am sent an email that there was an error. What could I be doing wrong?
Thank you! (you can reply in polish too, I can use google translate :) )
If platnosci doesn't get output "OK" from your "online.php" script, they are repeating request every minute, 5 minutes, hour.... until they don't recieve clear "OK". After many requests with no "OK" message They are sending an email. They need this "OK" to know that you recieved message (server is not down etc.). Check if your oonline.php outputs clear "OK", no errors, notices, white characters and other stuf like that...
OdpowiedzUsuńGot it! I had some errors that was causing it not to read the 'OK'. Thank you!
OdpowiedzUsuńPo pierwsze skrypt się przydał, dziękuję serdecznie, bo ostatnio zapomniałem podziękować.
OdpowiedzUsuńPo drugie oczywiście nie miałem racji zastanawiając się po co skrypt wysyłający komunikujący się z płatnościami, skoro platnosci.pl już komunikują się z nami.
Komunikują się i czekają na OK, ale same nie przysyłają żadnej informacji poza autoryzacją. Dają tylko znak, że coś się zmieniło. Byłem przekonany, że przy okazji wysyłają dane o nowym statusie - swoją drogą nie widzę powodu dla którego tego nie robią, ale fakt jest faktem, że trzeba samemu wysłać żądanie do nich.
Artykuł ten jest bardzo istotny, bo tak jak mówiłeś programiści niechętnie dzielą się publicznie swoimi skryptami.
Jednak opis techniczny do API faktycznie warto przeczytać.
Dzięki raz jeszcze i pozdrawiam.
Ostatecznie i tak warto napisać swoje rozwiązania bo szkoda oddawać 3% od transakcji systemowi platnosci :)
A jak wygenerować sig w formularzu rozpoczynającym płatność? bo wywala mi błąd - błędny sig
OdpowiedzUsuńDzięki ;) Przydało się bardzo ;)
OdpowiedzUsuńJa osobiście wolę płatności od https://www.cashbill.pl/pobierz/integracje gdyż są bardziej bezpieczne i łatwiejsze do wdrożenia. Liczy się też bardzo pobierana prowizja, a ten system co opisujesz ma jedne z najwyższych dlatego wybieram CashBill.
OdpowiedzUsuńNigdy nie bawiłem się w programowanie więc nie bardzo bym wiedział jak te płatności wprowadzić do siebie do sklepu. Dzięki systemu płatniczemu https://www.przelewy24.pl/metody-platnosci/przelewy-i-przekazy-bankowe mam chociaż pewność, że działając na gotowym skrypcie moje płatności będą w prawidłowy sposób realizowane.
OdpowiedzUsuńJeżeli chodzi o rozwiązania dla e sklepów, to od siebie polecam program Sendit. Oprogramowanie posiada szereg licznych funkcji takich jak integrację z różnymi kurierami, czy też zaawansowany tracking nadanych przesyłek https://www.sendit.pl/sledzenie-przesylek/. Dzięki takim funkcjonalnościom w prosty i szybki sposób można nadać nawet dużą ilość paczek.
UsuńSkoro już mowa o płatnościach to dla mnie nowoczesną technologią jest BLIK. Nie wyobrażałam sobie, że tak łatwo i szybko można płacić przy użyciu tego systemu! Na stronie https://www.przelewy24.pl/blog/dlaczego-warto-placic-blik-iem poznacie też inne powody, dla których warto płacić plikiem, więc koniecznie sprawdźcie!
OdpowiedzUsuńNajlepiej w ten sposób dokonywać płatności w sieci. Z pomocą https://bluemedia.pl/oferta/platnosci/platnosci-online szczególnie, komfortowo, wygodnie i szybko. Przelew u adresata jest wtedy błyskawicznie.
OdpowiedzUsuńJeśli już prowadzisz lub planujesz założyć sklep internetowy, chciałbym zaproponować listę niezawodne taśmy pakowe https://tcmservice.pl/ .Każdy wie, jak istotne jest bezpieczne zapakowanie przesyłki podczas transportu.
OdpowiedzUsuńA to jest prawda, że jeśli mamy robić zakupy w sklepach internetowych to im więcej mamy możliwości na dokonanie płatności tym lepiej. Przecież nie każdy musi akceptować każdą formę a też musi mieć wybór. Skąd wiedzieć jak bezpiecznie płacić, z jakiej opcji korzystać? Na https://bankingtech.pl/ jest wiele informacji w tym temacie, artykułów rzetelnie napisanych przez finansowo-bankowych specjalistów.
OdpowiedzUsuń