Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dotpay przelew PHP
Forum PHP.pl > Forum > Przedszkole
d.stp
Wiem jak zintegrować dotpay ze stroną, wiem jak odbierać dane o transakcji itd, ale mam problem bo mam formularz na stronie a w nim pola:

<input type="text" name="cos" />
<input type="text" name="cos2" />
<input type="text" name="cos3" />

oraz pole typu FILE

i żeby użytkownik mógł wrzucić swój plik musi wypełnić ten formularz oraz zapłacić przelewem w dotpay. Tutaj wszystko mam zrobione, ale jak odbiorę płatność to skąd mam wiedzieć co użytkownik wpisał te pola powyżej i jaki plik wrzucił?

Po kliknięciu w submit przekierowuje mnie do strony płatności dotpaya czyli tak jakby pomijam ten mój formularz.
trueblue
Zrób krok pośredni.
Po uzupełnieniu danych w tym formularzu, przekieruj na nowy w zależności od tego czy użytkownik załączył plik lub nie.
d.stp
No dobra, użytkownik doda plik wypełni formularz na stronie, ja to waliduje - jeśli wszystko jest ok, wyświetlam mu formularz dotpaya tylko gdzie te dane z pierwszego formularza mam wrzucić żeby użytkownik jak zakończy pozytywnie płatność dostał informacje, że plik został poprawnie wrzucony, zapisać dane z formularza pierwszego do bazy i wyświetlić info?

Tak wygląda drugi (dotpaya) formularz:

  1. <form name="do_platnosci" method="POST" action="https://ssl.dotpay.eu">
  2. <input type="hidden" name="id" value="x" />
  3. <input type="hidden" name="opis" value="opis" />
  4. <input type="hidden" name="control" value="" />
  5. <input type="hidden" name="amount" value="10.00" />
  6. <input type="hidden" name="typ" value="3" />
  7. <input type="hidden" name="URL" value="http://x/dotpayurlc.php" />
  8. <input type="hidden" name="URLC" value="http://x/dotpaycheck.php" />
  9. <input type="submit" name="dalej" value="zapłać" />
  10. </form>-->


Po skończeniu płatności dotpay przekierowuje klienta do mojej strony i tak POSTem odbieram sobie dane. Na siłe mógłbym wrzucić do tego inputa "control", ale mam kilka pól w swoim formularzu to chyba jedyne wyjście takie będzie:

name="control" value="wartosc_input1|wartosc_input2|wartosc_input3|nazwa_pliku"

no ale teraz drugi problem to co w przypadku gdy użytkownik nie dokona płatności lub źle zrobi? plik zostanie wrzucony na serwer, a na serwerze zrobi się śmietnik... Może po wypełnieniu pierwszego formularza wrzucać rekord do bazy z tymi danymi tylko dodać w tabeli pole "status" i dopiero jak płatność będzie zakończona pozytywnie to zmieniać wartość tego rekordu na 1 (aktywny) ? a automatem później kasować rekordy starsze niż X czasu i statusie 0? tylko znowu następny problem bo jak przekaże ID dodanego rekordu żeby później zaktualizować status?

to jest takie trudne czy za dużo czasu się z tym męcze? biggrin.gif biggrin.gif
markonix
1. Formularz właściwy czyli pola tekstowe i plik, dodajesz do bazy/wgrywasz plik, łączysz plik z wpisem z bazą, skrypt zwraca ID.
2. Wyświetlasz formularz DotPay, do control przekazujesz wyłącznie ID wiersza.
3. Odbierasz informacje, oznaczasz jako zapłacony, wykonujesz dalej co ma się tam dziać.

Tak, jeżeli aż tak bardzo się obawiasz tych nieopłaconych transakcji, które mają zerowy wpływ na wydajność póki ich nie będzie milionów, możesz je okresowo usuwać.
Ja bym nie usuwał, bo to cenne źródło informacji.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.