Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dodanie rekordu - przekierowanie do płatności
Forum PHP.pl > Forum > Przedszkole
boro11
Witam!

Mam taki kod:

  1. <?
  2.  
  3. require_once ('../connection.php');
  4. connection();
  5.  
  6. $upgrade = $_GET["upgrade"];
  7. $username = $_GET["username"];
  8. $price = $_GET["price"];
  9. $date = date("Y-m-d");
  10.  
  11. //formularz
  12.  
  13. if (isset($_POST['submit']))
  14. {
  15. $zapytanie = "INSERT INTO test_buyprem ( id, amount, nick, date) VALUES (' ', '$upgrade', '$username', '$date')";
  16. mysql_query($zapytanie) or die(mysql_error());
  17. }
  18.  
  19. ?>


  1. <!DOCTYPE HTML>
  2.  
  3. <script language="javascript" type="text/javascript" src="https://refbackbank.com/adm/niceforms.js"></script>
  4. <link rel="stylesheet" type="text/css" media="all" href="https://refbackbank.com/adm/niceforms-default.css" />
  5.  
  6. <style type="text/css">
  7. p {
  8. font-family: "Trebuchet MS", Arial, sans-serif;
  9. font-size: 10pt;
  10. }
  11. h3 {
  12. font-family: "Trebuchet MS", Arial, sans-serif;
  13. color: #666;
  14. }
  15.  
  16. </style>
  17.  
  18. </head>
  19.  
  20. <body>
  21.  
  22.  
  23.  
  24. <h3>Dear <?if($_SESSION['login'])
  25. {
  26. echo $username;
  27. ?>,</h3>
  28. <p>You are going to upgrade your account to <strong><?=$upgrade;?></strong>, please make sure that you have <strong><?=$price?>$</strong> on payment processor which you want to use to complet your order.</p>
  29. <br />
  30.  
  31. <form action="https://www.paypal.com/cgi-bin/webscr" method="POST" target="_top" style="display:inline;">
  32. <input type="hidden" name="cmd" value="_xclick">
  33. <input type="hidden" name="business" value="adrianos1992@gmail.com">
  34. <input type="hidden" name="lc" value="US">
  35. <input type="hidden" name="item_name" value="<?=$upgrade;?> - <?=$username;?>">
  36. <input type="hidden" name="amount" value="<?=$price;?>.00">
  37. <input type="hidden" name="currency_code" value="USD">
  38. <input type="hidden" name="button_subtype" value="services">
  39. <input type="hidden" name="no_note" value="0">
  40. <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest">
  41. <input type="image" src="https://refbackbank.com/images/paypal.jpg" border="0" name="submit" id="submit" value="submit" alt="PayPal - The safer, easier way to pay online!">
  42. </form>
  43.  
  44. <form method="post" action="https://www.alertpay.com/PayProcess.aspx" target="_top" style="display:inline;">
  45. <input type="hidden" name="ap_merchant" value="money@refbackbank.com"/>
  46. <input type="hidden" name="ap_purchasetype" value="service"/>
  47. <input type="hidden" name="ap_itemname" value="<?=$upgrade;?> - <?=$username;?>"/>
  48. <input type="hidden" name="ap_amount" value="<?=$price;?>"/>
  49. <input type="hidden" name="ap_currency" value="USD"/>
  50. <input type="image" src="https://refbackbank.com/images/alertpay.jpg"/>
  51. </form>
  52.  
  53. <form action="https://sci.libertyreserve.com/en" method="GET" target="_top" style="display:inline;">
  54. <input type="hidden" name="lr_acc" value="U8279191">
  55. <input type="hidden" name="lr_amnt" value="<?=$price;?>.00">
  56. <input type="hidden" name="lr_currency" value="LRUSD">
  57. <input type="hidden" name="lr_comments" value="<?=$upgrade;?> - <?=$username;?>">
  58. <input type="hidden" name="lr_success_url" value="https://www.refbackbank.com/successfully/">
  59. <input type="hidden" name="lr_success_url_method" value="GET">
  60. <input type="hidden" name="lr_fail_url" value="https://www.refbackbank.com/fail/">
  61. <input type="hidden" name="lr_fail_url_method" value="GET">
  62. <input type="hidden" name="test" value="pass">
  63. <input type="image" src="https://refbackbank.com/images/LibertyReserve.jpg" /></a>
  64. </form>
  65.  
  66. </div>
  67.  
  68. <?
  69. }
  70. else
  71. {
  72. ?>
  73. Guest, </h3>
  74.  
  75. <p>You must login to use this feature.</p>
  76.  
  77. <?
  78. }
  79. ?>
  80. </body>
  81.  
  82. </html>


Wszelka funkcjonalność związana z płatnościami działa, ale nie działa dodawanie do bazy. Podobnej konstrukcji tj:

  1. if (isset($_POST['submit']))
  2. {
  3. $zapytanie = "INSERT INTO test_buyprem ( id, amount, nick, date) VALUES (' ', '$upgrade', '$username', '$date')";
  4. mysql_query($zapytanie) or die(mysql_error());
  5. }



Używam w innej części serwisu i tam działa bez problemu, ale tutaj niestety nie chce.
Czy dzieje się tak dlatego, że wartości przekazywane do bazy mają inne nazwy niż pola w tabeli, czy może dlatego że użyłem $GET zamiast $POST?
lobopol
zrób sobie die($zapytanie); przed mysql_query i to co się wyświetli wykonaj bezpośrednio w konsoli/phpmyadminie i zobacz czy ci błędów nie sypnie.
boro11
Nic mi nie wyświetla tylko przekierowuje na strone np. PayPal'a
Niktoś
Błąd możesz mieć if (isset($_POST['submit'])).Nie wiem czy dobrze mówie ,ale tablice post wysyłasz w action formularza na jakiś url i tam powinieneś odbierac dane ,a nie na tej samej stronie. Dlatego ten isset_POst chyba nie za działa ,po za tym 3 formularze na jednej stronie ,hmm.
boro11
Nie mam możliwości odbierać danych "tam" bo te formularze prowadzą do strony płatności online (PayPal/AlertPay/Liberty Reserve)

Może komuś pomoże jak podam link do strony na której próbuję to zrobić:

https://refbackbank.com/dev/iframe.php

Ewentualnie jest jeszcze możliwość żeby dodawało po dokonaniu płatności bo po udanej transakcji jest przekierowanie na jedną z podstron na mojej stronie, ale nie wiem jak zrobić żeby mi się te dane trzymały - dwie będą bez problemu (obecna data + nazwa użytkownika), ale nie będę miał opcji rozszerzenia konta jaką wybrał. Było by to nawet lepsze bo system mógłby działać automatycznie smile.gif
Niktoś
Ja to widzę tak,żebyś pousuwał action formularza i po kliknięci w submit i wykonaniu tego kodu
if (isset($_POST['submit']))
{
$zapytanie = "INSERT INTO test_buyprem ( id, amount, nick, date) VALUES (' ', '$upgrade', '$username', '$date')";
mysql_query($zapytanie) or die(mysql_error());
}
manualnie odsyłał użytkownika na wybraną stronę poprzez header(location:"");
lobopol
Skoro nic ci nie wyświetla oznacza to, że formularz nie jest odbierany. Formularz kierujesz na paypala, a nie na własną stronę. W ten sposób nie jesteś w stanie tego odebrać, bo niby jakbyś chciał odczytać formularz wysyłany na inną stronę u siebie? Płatność powinieneś dodawać do bazy dopiero w momencie otrzymania informacji zwrotnej (zerknij w api paypala).
boro11
Próbowałem Twoją radę wykorzystać, ale teraz działa dodawanie do bazy ale nie działają płatności. Ten link jest "lipny" i wcale nie jest prawdziwym celem formularza więc header z takim przekierowaniem nie wchodzi w grę. Link prawidłowy jest generowany dynamicznie więc nie idzie go ustawić.
Niktoś
Po sobie musisz zbudować linka a później wysłać.Może zajrzyj do instrukcji/manuali tych systemów płatności tak jak @lobopol Tobie powiedział.
boro11
Tylko jest taki problem, że nie mam rozszerzonego konta na PayPal'u i opcje IPN/API są dla mnie nie dostępne, więc muszę to jakoś obejść smile.gif

Przepraszam za podbicie, ale wpadłem na pomysł żeby wysyłać te dane do bazy przy zaznaczeni checkbox'a którego bym dodał - jest to wykonalne?
CuteOne
1. Wysyłasz dane na własną stronę - tak jak ci doradzili
2. Walidujesz, zapisujesz do bazy
3. Jeżeli jest wszystko oki wysyłasz np. za pomocą cURL'a dane do paypala
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.