Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][HTML][PHP]Implementacja PayU - formularz
kotogalaxy
post 15.05.2015, 14:26:54
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.05.2015

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


Cześć! Witajcie serdecznie!

Muszę na szybkości podpiąć PayU na prostą stronę internetową osadzoną w zwykłym html'u. Wygląda to tak, że na stronie możemy zakupić 3 różne produkty produkty, dla każdego wybrać ilość sztuk i zapłacić za całość zamówienia poprzez system typu PayU.

Pobrałem sobie OpenPayU - https://github.com/PayU/openpayu_php z myślą, że pójdzie to nieco szybciej, ale od wczoraj nadal sobie nie poradziłem z problemem. Mam duże braki w PHPie, a właściwie to nie za abrdzo się na nim znam, dlatego ciężko mi coś sensownego wymyślić.

Strona formularza wygląda w ten sposób - https://github.com/PayU/openpayu_php/blob/m...r/OrderForm.php

Osadzona tabela zawiera wpisane już defaultowe wartości poszczególnych elementów, a potem tworzy formularz na ich podstawie.


Moje pytanie jest następujące. W jaki sposób powinienem modyfikować wartości poszczególnych elementów formularza/tabeli w php? Modyfikacja wartości value, po wygenerowaniu formularza nic nie daje, gdyż wtedy nie zgadza się podpis transakcji. Wychodzę z założenia, że w takim wypadku trzeba je zmienić przed wygenerowanie, ale nie wiem jak się za to zabrać.

Dzięki!
Pozdrawiam!
Go to the top of the page
+Quote Post
markonix
post 15.05.2015, 18:04:42
Post #2





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

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


Najpierw wybór produktu i ilość, a kolejnym krokiem jest stworzenie przycisku płatności. W drugim kroku nie ma już możliwości edycji.

Inną opcją jest ajax czyli wszystko jest na jednej stronie i zmiana produktu bądź ilości powoduje aktualizacje danych przycisku płatności, jednak to już poziom wyżej.


--------------------
Go to the top of the page
+Quote Post
kotogalaxy
post 15.05.2015, 19:01:31
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.05.2015

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


Tak własnie myślałem i prbowałem rozwiązać. Natomiast w jaki najprostszy sposób przekazać informacje o produkcie i ilości z formularza do tabeli w phpie?

Z ajax'em też się już bawiłem, bo początkowo chciałem to zrobić na jednej stronie, ale nteż nie wychodziło i odpuściłem na rzecz jak najprostszego rozwiązania przynajmniej chwilowo.
Go to the top of the page
+Quote Post
markonix
post 15.05.2015, 19:12:57
Post #4





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

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


Może to być na jednej stronie bez AJAXa.

Po prostu.

[WYBÓR PRODUKTU]
[ILOŚĆ]
[SUBMIT]

Po submit odczytujesz dane i tworzysz przycisk na tej samej stronie.


--------------------
Go to the top of the page
+Quote Post
kotogalaxy
post 16.05.2015, 08:33:01
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.05.2015

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


Logika w tym wypadku jest stosunkowo prosta, natomiast nie wiem jak rozwiązać to od strony technicznej. Poniżej wkleiłem kod strony. W jaki sposób mogę uaktualnić wartości tabeli $order, a w jaki dopiero później wygenerować przycisk funkcją $rsp = OpenPayU_Order::hostedOrderForm($order); ? Podejrzewam, że tylko dzięki AJAX'owi da się to zrobić, ale nie jestem pewien.

  1. <?php
  2. /**
  3.  * OpenPayU
  4.  *
  5.  * @copyright Copyright (c) 2014 PayU
  6.  * @license <a href="http://opensource.org/licenses/LGPL-3.0" target="_blank">http://opensource.org/licenses/LGPL-3.0</a> Open Software License (LGPL 3.0)
  7.  *
  8.  * <a href="http://www.payu.com" target="_blank">http://www.payu.com</a>
  9.  * <a href="http://developers.payu.com" target="_blank">http://developers.payu.com</a>
  10.  * <a href="http://twitter.com/openpayu" target="_blank">http://twitter.com/openpayu</a>
  11.  *
  12.  */
  13.  
  14. require_once realpath(dirname(__FILE__)) . '/../../../lib/openpayu.php';
  15. require_once realpath(dirname(__FILE__)) . '/../../config.php';
  16.  
  17. $order = array();
  18.  
  19. $order['notifyUrl'] = 'http://localhost'.dirname($_SERVER['REQUEST_URI']).'/OrderNotify.php';
  20. $order['continueUrl'] = 'http://localhost'.dirname($_SERVER['REQUEST_URI']).'/../../layout/success.php';
  21.  
  22. $order['customerIp'] = '127.0.0.1';
  23. $order['merchantPosId'] = OpenPayU_Configuration::getMerchantPosId();
  24. $order['description'] = 'New order';
  25. $order['currencyCode'] = 'PLN';
  26. $order['totalAmount'] = 3200;
  27. $order['extOrderId'] = rand(1000, 10000000);
  28.  
  29. $order['products'][0]['name'] = 'Product1';
  30. $order['products'][0]['unitPrice'] = 1000;
  31. $order['products'][0]['quantity'] = 1;
  32.  
  33. $order['products'][1]['name'] = 'Product2';
  34. $order['products'][1]['unitPrice'] = 2200;
  35. $order['products'][1]['quantity'] = 1;
  36.  
  37. $order['buyer']['email'] = 'dd@ddd.pl';
  38. $order['buyer']['phone'] = '123123123';
  39. $order['buyer']['firstName'] = 'Jan';
  40. $order['buyer']['lastName'] = 'Kowalski';
  41.  
  42. $rsp = OpenPayU_Order::hostedOrderForm($order);
  43. ?>
  44. <!doctype html>
  45. <html lang="en-US">
  46. <head>
  47. <meta charset="UTF-8">
  48. <title>Generated Order Form - OpenPayU v2</title>
  49. <link rel="stylesheet" href="../../layout/css/bootstrap.min.css">
  50. <link rel="stylesheet" href="../../layout/css/style.css">
  51. <style type="text/css">
  52. #payu-payment-form button[type=submit]{
  53. border: 0px;
  54. height: 35px;
  55. width: 140px;
  56. background: url('http://static.payu.com/pl/standard/partners/buttons/payu_account_button_long_03.png');
  57. background-repeat: no-repeat;
  58. cursor: pointer;
  59. }
  60. </style>
  61. </head>
  62. </head>
  63.  
  64. <body>
  65. <div class="container">
  66. <div class="page-header">
  67. <h1>Generated Order Form - OpenPayU v2.1</h1>
  68. </div>
  69. <div id="message"></div>
  70. <div id="unregisteredCardData">
  71. <pre>
  72. <?php echo htmlentities($rsp); ?>
  73. </pre>
  74. <?php echo $rsp; ?>
  75.  
  76. </div>
  77. </div>
  78. </html>
Go to the top of the page
+Quote Post
markonix
post 17.05.2015, 14:28:44
Post #6





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

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


Nie trzeba AJAX. Po wysłaniu formularza część danych podmieniasz (wcześniej oczywiście je walidując) na te wpisane w formularzu.

Np. ilość:
  1. $order['products'][0]['quantity'] = $_POST['quantity'];


Przyjmując, że w formularzu zamówienia masz pole:
  1. <input type="number" min="1" name="quantity" required="required">


Ten post edytował markonix 17.05.2015, 14:29:25


--------------------
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 Wersja Lo-Fi Aktualny czas: 4.05.2025 - 05:53