Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Dwie akcje do jednego submita?
boro11
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Witam ostatnio dodałem do swojej strony możliwość płatności używając internetowych banków tj. PayPal oraz AlertPay.

Przy zamówieniu można wybrać sobie co się chce kupić. Kod samego formularza/buttonu wygląda następująco:

  1. <form method="post" name='asd' action="https://www.alertpay.com/PayProcess.aspx">
  2. <input name="ap_purchasetype" value="service" type="hidden">
  3. <input name="ap_merchant" value="money@refbackbank.com" type="hidden">
  4. <input name="ap_itemname" id='aaa' value="Emerald - 5$" type="hidden">
  5. <input name="ap_description" value="<?=$_SESSION['login']?>" type="hidden">
  6. <input name="ap_currency" value="USD" type="hidden">
  7. <input name="ap_returnurl" value="https://refbackbank.com/" type="hidden">
  8. <input name="ap_quantity" value="1" type="hidden">
  9. <input name="ap_amount" id='bbb' value="5" type="hidden">
  10. <input type="image" src="https://refbackbank.com/images/alertpay.jpg" border="0" name="submit" alt="AlertPay">
  11.  
  12. </form>


Jak mogę dodać do tego żeby przy zamówieniu (kliknięciu w button) dodała się również informacja do bazy danych ze szczegółami zamówienia?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Poczytaj o onsubmit i ajax
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(CuteOne @ 26.08.2011, 07:19:24 ) *
Poczytaj o onsubmit i ajax


A co jeśli JS będzie wyłączony?
Zrób formularz z przekierowaniem do swojego pliku po czym z niego wyślij dane na stronę płatności i do bazy.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Olewam takich ludzi jak chcą być masochistami to ich wybór

ps. tobie radze to samo smile.gif

EDIT: chociaż w tym wypadku to faktycznie masz rację. zrobienie tego po stronie klienta, może spowodować duże komplikacje

Ten post edytował CuteOne 26.08.2011, 06:36:12
Go to the top of the page
+Quote Post
!*!
post
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Też ich olewam, ale nie w przypadku gdy chodzi o płatności wink.gif


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
wizu
post
Post #6





Grupa: Zarejestrowani
Postów: 127
Pomógł: 15
Dołączył: 16.02.2008
Skąd: Sanok

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


Myślę, że rozsądniejszym wyjście będzie tworzenie rekordu w bazie danych za każdym razem, gdy wyświetlasz formularz. Z reguły do bramki płatności musisz wysłać jakiś ciąg znaków będący niejako identyfikatorem sesji, zapisz go sobie również w bazie wraz z id klienta.
Gdy user przejdzie na stronę bramki płatności, w zależności od tego, czy zapłaci, czy nie, zostanie przekierowany z powrotem na Twoją stronę wraz z danymi w $_POST, (przekieruje na odpowiedni adres, który np. wpisałeś w panelu administracyjnym bramki płatności). Odczytujesz sobie tylko $_POST, znajdziesz tam id sesji który wcześniej podałeś, aktualizujesz sobie na jego podstawie rekord w bazie (np. zmieniasz pole status na 'Zapłacone') i masz pewność, że nie zgubisz żadnej płatności.
Go to the top of the page
+Quote Post
!*!
post
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(wizu @ 26.08.2011, 10:35:48 ) *
Myślę, że rozsądniejszym wyjście będzie tworzenie rekordu w bazie danych za każdym razem, gdy wyświetlasz formularz.


Bez sensu. Niepotrzebne odpytywanie bazy. A co jeśli ktoś wyświetli formularz a nie dokona zapłaty? Lepiej wysłać zapytanie gdy faktycznie jest to podtrzebne.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
wizu
post
Post #8





Grupa: Zarejestrowani
Postów: 127
Pomógł: 15
Dołączył: 16.02.2008
Skąd: Sanok

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


Cytat(!*! @ 26.08.2011, 10:42:41 ) *
Bez sensu. Niepotrzebne odpytywanie bazy. A co jeśli ktoś wyświetli formularz a nie dokona zapłaty? Lepiej wysłać zapytanie gdy faktycznie jest to podtrzebne.


Rób jak uważasz. Jednak jeśli chodzi o płatności, lepiej mieć wszystko w logach, nawet te według Ciebie niepotrzebne dane.
Go to the top of the page
+Quote Post
!*!
post
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A jakież to niby potrzebne dane może mi przekazać użytkownik tuż po wyświetleniu formularza, że aż muszę to sobie zapisać do bazy? Log o którym mówisz o ile już musisz zapisujesz w bazie dopiero po jakiejś akcji, szczególnie że nie wiesz jaką opcje wybierze użytkownik, no chyba że masz magiczną kulę. Twój sposób niepotrzebnie zaśmieca bazę, a logi jako takie i tak są w innym miejscu, chyba że trzymasz te płatności na yoyo czy innym home.pl

Ten post edytował !*! 26.08.2011, 17:32:39


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
boro11
post
Post #10





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Cytat(!*! @ 26.08.2011, 07:23:38 ) *
A co jeśli JS będzie wyłączony?
Zrób formularz z przekierowaniem do swojego pliku po czym z niego wyślij dane na stronę płatności i do bazy.


Mógł byś trochę jaśniej bo nie wiem czy dobrze zrozumiałem..

Chcesz aby podczas "zakupów" user wybierał sobie co chce i podczas wyboru przesyłają się dane do bazy a dopiero na następnej stronie są płatności?
Go to the top of the page
+Quote Post
CuteOne
post
Post #11





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


<form action="skrypt_do_odbierania_danych.php" method="post">

a w Twoim pliku "skrypt_do_odbierania_danych.php" zapisujesz dane do bazy po czym wysyłasz je curlem do płatności
Go to the top of the page
+Quote Post
boro11
post
Post #12





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Będę musiał to chyba jednak zrobić tak jak sam to opisałem bo waszego sposobu chociaż jest pewnie o niebo lepszy niestety nie rozumiem :/
Go to the top of the page
+Quote Post
CuteOne
post
Post #13





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Poczytaj o cURL to zrozumiesz smile.gif
Go to the top of the page
+Quote Post
!*!
post
Post #14





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


CuteOne dlaczego curl?

boro11 - Twój system płatności ma zapeewne jakieś API, każdy serwis takie posiada, dzięki czemu możesz je obsługiwać.

Chodzi o to że robisz formularz, plik "jakistam.php" i w formularzu dajesz "action=jakistam.php".
W tym pliku odczytujesz dane jakie wysłałeś w formularzu i zapisujesz je sobie do bazy, po czym dzięki API wysyłasz je do serwisu z płatnościami. Ot koniec.

Tylko zabezpiecz to dobrze wink.gif

Ten post edytował !*! 29.08.2011, 11:15:22


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CuteOne
post
Post #15





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Bo jest prostsze niż zabawa z API smile.gif
1. Nie wiesz czy dany serwis takowe API posiada a jeszcze lepiej jak jeden posiada a drugi nie
2. Jeżeli obsługujesz więcej niż jeden bank to podwajasz / trajasz / pięciorasz (biggrin.gif) wysiłek na dostosowanie API do skryptu

A tak masz jedną funkcję do wysyłki i tylko zmieniasz sobie dane POST/GET smile.gif

ps. dla mnie jeżeli API nie ma jakiś fajniejszych możliwości jak odbiór / wysyłka danych to jest zbędny smile.gif

Ten post edytował CuteOne 29.08.2011, 11:23:22
Go to the top of the page
+Quote Post
!*!
post
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


@up, to są jeszcze takie na rynku? Przecież właśnie po to są te wszytkie serwisy płatności żeby obsługiwać każdy bank po swojej stronie i oni dostarczają Ci API tylko do obsługi ich bebechów, nic więcej, przecież nie robisz odwołania do każdego banku po swojej stronie wink.gif

Ten post edytował !*! 29.08.2011, 11:26:28


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
CuteOne
post
Post #17





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Wole napisać swój skrypt niż płacić pośrednikowi prowizję...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:31