Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dotpay przelew PHP
d.stp
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


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.
Go to the top of the page
+Quote Post
d.stp
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


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? (IMG:style_emoticons/default/biggrin.gif) (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


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.

Ten post edytował markonix 18.10.2014, 23:17:49
Go to the top of the page
+Quote Post

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: 22.08.2025 - 20:31