Witam,
mam problem z implementacją płatności przelewy24. Przerobiłem nieco klasę, która tworzy token, rejestruje płatność i ją werfykuje, lecz nie tutaj problem.
Moim problemem jest sprawdzenie, czy płatność została zrealizowana. Mamy dwa adresy:
$p24_url_return = URI.'potwierdzenie/';
$p24_url_status = URI.'status/.'$lastInserdId.'/';
//$p24_url_status = URI.'paymentinfo.php?idd='.$lastInserdId;
O ile url_return nie robi nic tylko pokazuje informacje to czytając w dokumentacji dowiaduje się, że każda poprawna płatność zwraca dane POST na adres url_status.
Próbowałem już dodać oba adresy takie same i werfykikować czy zostały przesłane jakieś dane POST ale nic z tego. Zmienna w adresie wskazuje mi na ID płatności, którą mam z aktualizować - nie jest to potrzebne bo można porównać po $_POST['p24_session_id'] jednak nie przeszkadzało mi pokazywać ID jako że użytkownik nie będzie tego widział.
Sądzę, że czegoś nie rozumiem lub nie potrafię czytać ze zrozumieniem dokumentacji. Proszę o pomoc, bo nie mam pojęcia gdzie przepadają te dane lub czy url_status jest w ogóle wywoływany.
Pozdrawiam
Zakładam, że to tylko przykład, i "co się źle wkleiło", bo
$p24_url_status = URI . 'status/' . $lastInserdId . '/';
$p24_url_status = URI . 'status/.'$lastInserdId . '/';
http://www.php.net/echo '<pre>'; http://www.php.net/print_r($_POST); http://www.php.net/echo '</pre>'; $oPrzelewy24_API = new Przelewy24_API(); if (http://www.php.net/isset($_POST['p24_merchant_id']) && http://www.php.net/isset($_POST['p24_sign'])) { if ($oPrzelewy24_API->Verify($_POST) === true) { http://www.php.net/echo 'dziala'; } }
Na jakiej postawie twierdzisz, że tablica $_POST jest pusta?
Jeśli Ty wywołujesz ten skrypt z przeglądarki, to na pewno tak jest, bo przecież nie dostarczasz danych poprzez POST. Jeśli wywołują go płatności, to nie zobaczysz wyniku print_r i echo.
Jesteś chyba kolejną osobą, która nie rozumie zasady działania płatności.
http://forum.php.pl/Przelewy24_jak_weryfikowac_odpowiedz_zwrotna_t260420.html
Faktycznie wywołanie print_r było głupie, jednak już próbowałem wszystkiego.
Najważniejsze pytanie czy muszę mieć dostęp do panelu przelewy24? Mam tylko POS_ID i CRC.
Pytam, bo możliwe że tam trzeba ustawić linki gdzie będzie przekazywana odpowiedź o płatności.
Ja myślałem, że wystarczy w skrypcie ustawić link do p24_url_status.
W każdym razie, stworzyłem osobny plik, który wygląda tak:
require_once('../_classes/dbconnect.class.php'); require_once('../_classes/przelewy24.class.php'); $oPrzelewy24_API = new Przelewy24_API(); if (http://www.php.net/isset($_POST['p24_merchant_id']) AND http://www.php.net/isset($_POST['p24_sign'])) { if ($oPrzelewy24_API->Verify($_POST) === true) { $updateStatus = $pdo -> query('UPDATE `przelewy` SET `status` = "1" WHERE `p24_session` = "'.$_POST['p24_session_id'].'"'); $updateStatusExec = $updateStatus -> execute(); } }
Metodę Verify zmieniłeś? I tam (w jej ciele) wstawiłeś fragment, który podał Pyton_000?
Powinieneś to wstawić na początek tego pliku, najlepiej przed require_once.
#kontrola bledow /* ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); */ file_put_contents('p24.log', http://www.php.net/var_dump($_POST, true), FILE_APPEND); require_once('../_classes/dbconnect.class.php'); require_once('../_classes/przelewy24.class.php'); $oPrzelewy24_API = new Przelewy24_API(); if (http://www.php.net/isset($_POST['p24_merchant_id']) AND http://www.php.net/isset($_POST['p24_sign']) ) { if ($oPrzelewy24_API->Verify($_POST) === true) { $updateStatusss2 = $pdo -> query('UPDATE `przelewy` SET `status` = "1" WHERE `id_session` = "'.$_POST['p24_session_id'].'"'); } else { $stringg = 'blad'; $updateStatus = $pdo -> query('INSERT INTO `config` (`key`, `value`) VALUES("p24_error", "'. $stringg .'")'); } }
Na początku. Pisałeś o tym, że zmieniałeś metodę Verify, więc zasugerowałem, abyś umieścił właśnie na początku. Nie pisałeś, że już tak zrobiłeś.
W jakim trybie uruchomione są płatności - rzeczywistym czy testowym?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)