![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie koledzy (IMG:style_emoticons/default/smile.gif)
Mam problem z integracja PayU ze swoją stroną www. Otóz wysyłanie danych jest wporządku. PayU pokazuje platnosc oraz wszelkie dane z formularzy. Po kliknieciu akceptacji platnosci w przykladzie testowym, wraca mi na podstrone "przyklad.pl/index.php?wynik=ok". Jak jest blad to "wynik=blad". I teraz pytanie. W przykladach ktore znalazlem w necie jezeli platnosc jest ok to payu powinno przeslaes $_POST z danymi do weryfikacji... wrzucam sobie var_dum($_POST) i wyskakuje mi komunikat ze array(0). Co robie nie tak? Moge prosic o krotkie info? Z gory dziekuje za wszelka pomoc, a jezeli cos niejasno opisalem to zamiast z*ebki dajcie znac to rozpisze wszystko bardziej szegolowo (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
PayU przesyła to na stronę którą podałeś tam gdzieś w ustawieniach.
Nie da się odczytać tego co przesyła przez przeglądarkę, bo to PayU wysyła, a nie Ty. Podejrzeć sobie może na stronie PayU w historii transakcji i wybrać płatności testowe. Albo możesz na tej stronie, na którą PayU wysyła POSTA, zrobić zapis tego $_POSTa do pliku czy bazy i później sobie go przejrzeć. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pokminilem i przesylam sobie getem kilka parametrow na strone wynikowa gdzie jest ok i tam dokonuje sprawdzania na jakim etapie jest transakcja. tak chyba ma byc prawda?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Może inaczej. Z czym masz problem? Bo pytasz co robisz nie tak, czy tak ma być, ale nie piszesz co chcesz osiągnąć.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Chce zeby pokazywalo mi stan platnosci.
Laczy sie z payu, wraca na moja strone ze statusem ok. i teraz chce sprawdzic na jakim etapie jest platnosc. czy jest zrealizowana, w trakcie, czy sie nie udalo itp itd. (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
No to przy Payment/get dostajesz zwrotkę i musisz ją przeanalizować po stronie serwera i sobie gdzieś wypluć wynik.
Zresztą automatycznie po zrobieniu transakcji przez chyba godzinę transakcja próbuje się odbyć i za każdym razem dostajesz $_POSTa od PayU (dopóki nie jest, że zapłacono), na tej podstawie analizujesz czy płatność jest zrealizowana czy nie i zapisujesz to sobie gdzieś. Po 2 dniach płatność będzie miała taki sam status jak ta ostatnia próba która się wykonała z automatu, więc po co sprawdzać ponownie. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Moj kod lapiacy wynik w pliku z payu wyglada tak:
"switch ($_GET['wynik']) { case 'ok': $bledy = array(); if (isset($_GET['pos']) && isset($_GET['sesja']) && isset($_GET['zamowienie'])) { cos tam dalej..." jak daje odbior jako $_post to nic sie kompletnie nie dzieje. nie wiem czy jest to spowodowane tym ze jestem w trybie testowym czy cos poprostu robie zle :/ Parametry dla get ustawilem w payu w sekcji "Adres powrotu pozytywnego". |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
http://www.payu.pl/_old/view/admin/ckedito..._2011-05-16.pdf
+ przykładowy plik raportu (pliku, który aktualizuje Ci statusy zamówień - plik, do którego payu "łączy się" i wysyła dane $_POSTem) http://www.payu.pl/pliki/raport.phps.html w tej dokumentacji technicznej masz punkt 3.7.2 - i tam masz spis danych, które PayU wysyła do Ciebie - status transakcji możesz sprawdzić po przez: $_POST['status'] |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki wuja. W sumie czytalem dokumentacje ale cos i tak mi nie idzie - moze poprostu nastapilo zmeczenie materialu (IMG:style_emoticons/default/smile.gif) Przysiade do tego jeszcze raz po chwili odpoczynku a jak mi nie pojdzie to jeszcze troche pomarudze (IMG:style_emoticons/default/smile.gif)
Witajcie ponownie (IMG:style_emoticons/default/smile.gif) No wiec tak: platnosc idealnie idzie do payu (IMG:style_emoticons/default/smile.gif) jak jest zle to wraca mi na strone np. blad.php a jak jest ok to na ok.php i wyswietla komunikat ze alles jest dobrze. no i teraz mam trzecia podstrone "raport". obojetnie gdzie bym nie wrzycil var_dump($_POST) w celu sprawdzenia co przychodzi z payu - nic sie nie dzieje - wyswietla array(0). czy jest to powodem ze dzialam na sandboxie z platnoscia testowa? uzylem skryptu to sprawdzania stanu platnosci tego ktory jest na stronie payu - oczywiscie modyfikujac i dostosowujac pod swoj skrypt i wlasnie tez nei wiem czy on ma byc w podstronie z raportem czy tam gdzie jest ok? doczytalem sie w innym poscie ze wlasnie podstrona raport to serce integracji wiec wydaje mi sie ze skrypt powinien byc tam - nie zmienia to jednak faktu ze i tak var dump wypluwa ze payu nie przesyla zadnych danych. Prosze o jakies wskazowki i z gory dzieki (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zgadza się. Podstrona raportu to serce integracji - tam PayU wysyła dane metodą $_POST (dane, odnośnie które zamówienie zostało opłacone, gdzie płatność została autoryzowana, itd). To działa na takiej zasadzie:
1) TWÓJ SERWIS: KLIENT -> PAYU -> (................) -> OPERACJA (SUKCES LUB ERROR) 2) SERWIS PAYU: Payu łączy się z raportem - żadnej klient, żadnej administrator nie widzi tego ruchu, PayU samo wybiera czas kiedy się połączy i poinformuje o dokładnym statusie płatności (identyfikator płatności, jakie zamówienia, itd) Ad1) *(................) - w tym miejscu PayU weryfikuje PODSTAWOWE dane (np. imię, nazwisko, sig, itd) Ad2) I teraz drugi punkt to odpowiedź na Twoje pytanie związane z pustą tablicą array. Oczywiście, że gdy wejdziesz na podstronę: raport.php i wyświetlisz var_dump($_POST) to dostaniesz pustą tablice - bo Ty łączysz się jako KLIENT, zwykły "zjadacz chleba" - raport.php (podstrona raportu) to podstrona dla PayU to ONA się łączy z tą podstronę nie Ty. To PayU wysyła dane $_POSTem, nie Ty. Więc jakbyśmy mieli się uprzeć to tylko jeśli PayU wejdzie na stronę raport.php i będzie tam kod var_dump($_POST) to tylko PayU zobaczy zawartość tablicy, nie Ty. Jeśli chcesz wiedzieć jakie dane przychodzą (co jest pokazane w dokumentacji, chyba nawet podałem Ci paragraf który) to zrób coś na zasadzie: Cytat zrobić zapis tego $_POSTa do pliku czy bazy i później sobie go przejrzeć. czyli otwórz sobie raport.php i zrób w nim zapis w stylu:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
O kurcze (IMG:style_emoticons/default/smile.gif) Super podpowiedz! Dzieki wujek (IMG:style_emoticons/default/smile.gif) teraz wszystko jest jasne. a ja juz myslalem ze ja cos zle robie... zrobie jak napisales i zobacze co z tego wyjdzie (IMG:style_emoticons/default/smile.gif)
ps. Sprawdziłem (IMG:style_emoticons/default/smile.gif) Działa (IMG:style_emoticons/default/biggrin.gif) Przekazuje dane (IMG:style_emoticons/default/smile.gif) Jeszcze raz podziekował (IMG:style_emoticons/default/smile.gif) Hello ponownie (IMG:style_emoticons/default/smile.gif) Jeszcze jedno i (chyba) juz ostatnie pytanie (IMG:style_emoticons/default/smile.gif) Apropo: /* TODO: zmiana statusu transakcji w systemie Sklepu */ /* przykladowo: if ( $result['code'] == '99' ) { if ( rozliczamy_zamowienie_srodki_wplynely ) { // udalo sie zapisac dane wiec odsylamy OK echo "OK"; exit; } } else if ( $result['code'] == '2' ) { // transakcja anulowana mozemy również anulować zamowienie } else { // inne akcje } */ // jezeli wszytskie operacje wykonane poprawnie wiec odsylamy ok // w innym przypadku należy wygenerować błąd // if ( wszystko_ok ) { echo "OK"; exit; // } else { // // } wystarczy ze zrobie cos takiego? if ( $result['code'] == '99' ) { echo 'OK'; exit; } + ewentualnie zmiana w bazie danych statusu zamowienia z 0 na 1? ? Nie jest to sklep wiec teoretycznie zadne inne komunikaty mnie nie interesuja. Zasada bedzie taka ze jezeli sie komus cos spodoba - placi przez pay u. wtedy jego dane zapisuja sie w bazie. i jezeli platnosc bedzie odebrana to status w bazie 1 w przeciwnym wypadku 0. Dobrze mysle o rozwiazaniu? Puk puk (IMG:style_emoticons/default/smile.gif) Pomoże ktoś?(IMG:style_emoticons/default/smile.gif) Ten post edytował MotuH 28.10.2013, 22:48:07 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie do końca - PayU ma kilka statusów (płatność zaakceptowana, płatność w toku, płatność anulowana, płatność odrzucona i tam jeszcze kilka). Więc ograniczenie tego do "0" i "1" to dość uproszczone informacje - najgorzej będzie jeśli płatność się z jakiegoś powodu nie uda, a Ty nigdzie nie zapiszesz sobie ID statusu i nie będziesz miał w panelu informacji o błędzie. Ja to zrobiłem w stylu (plik/kontroler raportu, czyli podstrona dla PayU):
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Na potrzeby małej aplikacji można to znacząco uprościć. Wszelkie informacje są zapisane w panelu PayU a dodatkowo jak PayU nie dostanie odpowiedzi to zdaje się że przysyłają zbiorczy raport pod koniec dnia.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za pomoc (IMG:style_emoticons/default/smile.gif) Mam nadzieje ze teraz juz wiem wszystko co potrzebowalem aby aplikacja dzialala (IMG:style_emoticons/default/smile.gif)
Hej ponownie (IMG:style_emoticons/default/smile.gif) Ponownie zabralem sie za platnosci... i niby wszystko jest ok. Wg tego jak koledzy wyzej pisali - otrzymuje postem info co i jak. natomiast w transakcjach w payu nie widnieje zadna transakcja testowa. Czy tak tam jest? Czy jezeli przeprowadzam testy to mimo wszystko powinna ona tam widniec? |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Powinna być widoczna. Z tego co pamiętam przy liście transakcji trzeba jasno w filtrze określić, że ma pokazywać również transakcje testowe. Domyślnie są ukryte.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ehh lame (IMG:style_emoticons/default/smile.gif) Zadalem pytanie i pozniej wlasnie tez to zauwazylem... Przepraszam za smietnik (IMG:style_emoticons/default/smile.gif) A teraz pytanie kolejne...
Wszystko przebiega zgodnie z planem. Transakcja pojawia sie jako zaakceptowana. Wiec domniemam ze payu zwraca do skryptu iz platnosc ma status 99. wiec teraz ifem robie ze jezeli platnosc == 99 to zmien flage w bazie z 0 na 1 (czyli ze transakcja zrealizowana), tak?(IMG:style_emoticons/default/smile.gif) Hmm... dochodze do momentu kiedy juz aplikacja laczy sie z payu do potwierdzenia statusu platnosci... lacze sie przez fsockopen i otrzymuje cos takiego: <?xml version="1.0" encoding="UTF-8"?> <response> <status>ERROR</status> <error> <nr>101</nr> <message>Kod błędu: 101</message> </error> </response>HTTP/1.1 200 OK Server: nginx Date: Mon, 09 Dec 2013 15:21:11 GMT Content-Type: text/xml;charset=UTF-8 Content-Length: 164 Connection: close opieram sie na tym: http://www.payu.pl/pliki/raport.phps.html gdzie jest blad?(IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
w dokumentacji masz tabelę z kodami błędów (punkt 2.1)
101 - brak parametru session_id |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
sazian sprawdzalem. wszystko kurcze jest... nie wiem o co biega. ale jeszcze raz przeanalizuje caly kod i jak juz naprawde skoncza mi sie wszelkie pomysly to wrzuce tu kod i poprosze o sprawdzenie :/
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zadzwoń do PayU, mają naprawdę świetny support i pomagają ze wszystkim, szkoda Twojego i naszego czasu na zgadywanie.
|
|
|
![]()
Post
#20
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Hmm... dochodze do momentu kiedy juz aplikacja laczy sie z payu do potwierdzenia statusu platnosci... lacze sie przez fsockopen i otrzymuje cos takiego: PayU samoczynnie przesyła informację na temat płatności na podany przez Ciebie adres (podajesz go w konfiguracji płatności). Tam otrzymujesz tablicę $_POST z wszystkimi istotnymi informacjami. Sam nie musisz komunikować się z PayU, a jedynie "nasłuchiwać" odpowiedzi z ich strony. |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Hej (IMG:style_emoticons/default/smile.gif) Poradzilem sobie. Przeanalizowalem kod i znalazlem blad (IMG:style_emoticons/default/smile.gif) Wszystko dziala.
A powiedzcie mi... bo chce zrobic teraz taki myk... ze bede przesylal dane z formularza przez fsockopen lub curla... kod wyglada tak:
Nic mi sie jednak nie wyswietla... a powinno laczyc ze strona payu prawda? Czy to dziala w tle? Sorry (IMG:style_emoticons/default/smile.gif) Okazuje sie ze strona payu wczytuje sie na ekranie... nie ma mozliwosci zeby od razu przenioslo do strony payu a nie sciagalo ja tak jakby do wnetrza mojej podstrony? Ten post edytował MotuH 11.12.2013, 18:23:19 |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie, musisz przejść na stronę PayU.
PS. PayU ma bardzo ładną bibliotekę pod OAuth2 |
|
|
![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Okej. dzieki (IMG:style_emoticons/default/smile.gif)
A jezeli chodzi o podsumowanie platnosci to czy dobrze jest to zrobic tak: Wypelniam formularz po czym przenosi mnie do nastepnyj podstrony, gdzie pokazuje formularz z zablokowanymi polami i dodaje np usera do bazy danych. klikam "zaplac" i przenosi mnie do platnosci? Tylko z drugiej strony... user zostanie dodany nawet w momencie kiedy nie oplaci uslugi. Macie pomysl jak to rozwiazac? |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznie nie powinno to cię martwić.
Możesz dodatkowo co jakiś czas sprawdzać (jakaś flaga że użytkownik pochodzi z PU) i czyścić ich, choć nie widzę sensu i zasadności (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Z ta flaga nieglupi pomysl (IMG:style_emoticons/default/smile.gif) w panelu admina beda widoczni tylko ci userzy ktorzy maja flage przyznana od payu a reszta nie... ustawie na cronie ze co jakis czas ci userzy beda usuwani.
Zrobilem teraz tabele na emaile (gdyz kazdy user ma unikalny) osobno i lacze ja z tabela "uzytkownicy" gdzie jest imie, nazwisko itp. dobrze tak bedzie?(IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dodatkowe dane będą w relacji 1:1 to nie ma sensu. Po prostu ustawiasz klucz Unique na email i po sprawie
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 19:48 |