Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pomoc z implementają Przelewy24, wszystko działa ok, ale tylko w środowisku testowym.
hao
post 15.05.2017, 23:32:42
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


Cześć.
Będę wdzięczny za jakieś wskazówki jak ogarnąć integracją z Przelewy24.
Oto co już mam:

Powiedzmy, że skrypty mają "kolejność":


1-index.php - skrypt ze sklepem

2-zapisanie-zamowienia.php - tutaj zapisuję zamówienie do bazy MySQL, a następnie przy pomocy header("Location: 3-platnosc.php?zamowienie=xxx); przechodzę automatycznie do punku 3

3-plantosc.php - tutaj ma ten formularz:
  1. <form action="https://secure.przelewy24.pl/trnRegister" method="post" class="form" id="fformn">
  2. <input type="hidden" name="salt" value="saltsaltsalt" />
  3. <input type="hidden" name="p24_session_id" value="<?php echo $session; ?>" />
  4. <input type="hidden" name="p24_merchant_id" value="11111" />
  5. ...
  6. <input type="hidden" name="p24_url_return" value="<?echo '4-potwierdzenie-platnosci.php?zamowienie=xxx" />
  7. <input type="hidden" name="p24_url_status" value="<?echo '9-weryfikacja-przelewy24.php'; ?>" />
  8. ...
  9. <input name="submit_send" value="Wykonaj przelew" type="submit" />
  10. </form>

Tutaj przelewy24 uruchamiają skypt na mojej stronie (9-weryfikacja-przelewy24.php) , gdzie odznaczam sobie w bazie zamówień że zostało opłacone zamówienie.

4-potwierdzenie-platnosci.php - info dla klienta, że wszystko poszło ok.

W sandboksie wszystko działa świetnie.
Niestety na żywo nie. Dostaję komunikat

error=1&errorMessage=p24_sign:Incorrect CRC value - ale to na pewno mam ok - md5 obliczane wg. wzoru, no i działa w sandboxie.

Mam wrażenie, że w ogóle robię coś źle. Widzę w dokumentacji, której nie rozumiem tongue.gif różne połączenia: trnRegister? trnRequest/{token} ...? Który mam użyć? Nie mam pojęcia jak miałbym użyć obydwa... jakoś... ?

Gdzie co ma być? Nie potrafię zrozumieć koncepcji komunikacji z Przelewy24.

Dziękuję z góry za jakiekolwiek wskazówki.

P.S. Jestem na poziomie raczej podstawowego php i komunikacji typu "kliknij submit i na kolejnej stronie zapisz dane".
P.S.2. Nie wiem również jak przekazać sobie numer zamówienia, które zostało opłacone. Ja użyłem
<input type="hidden" name="p24_transfer_label" value="ZAM33" />
który to dokleja się do tytułu przelewu "przelewy24" i wygląda wówczas jakoś tak: "f32d-23r4-sdf3 ZAM33" - czy tak można?

Ten post edytował hao 15.05.2017, 23:45:59
Go to the top of the page
+Quote Post
ZaqU
post 16.05.2017, 10:15:38
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

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


Pierwsza rzecz, która rzuca się od razu w oczy:
Kod
<input type="hidden" name="p24_url_return" value="<?echo '4-potwierdzenie-platnosci.php?zamowienie=xxx" />

Niedomknięty znacznik php, powinno być:
Kod
<input type="hidden" name="p24_url_return" value="<?echo '4-potwierdzenie-platnosci.php?zamowienie=xxx'); ?>" />

Czasami taka literówka powoduje, że kod działa, ale psuje przez to kilka znaczników html i serwer nie wie jak je zinterpretować.

Jeżeli jesteś początkujący, staraj się utrzymywać jednolitą koncepcję na znaczniki otwarcia i zamknięcia php. Jak w jednej linijce masz <?php ?> to w innej nie powinieneś mieć <? ?>. W ogóle powinno się stosować tylko tą pierwszą wersję.

Podaj linka do dokumentacji z której korzystasz.

Koncepcja komunikacji jest prosta:
1. Klient wrzuca produkty do koszyka w Twoim sklepie, albo w inny sposób tworzy zamówienie.
2. Przetwarzasz zamówienie po swojej stronie, m.in. zapisujesz je w bazie, nadajesz numer itd.
3. Przygotowujesz formularz który wyślesz do Płatności24 celem pobrania przez nich płatności. Zawiera on numer zamówienia, kwotę, nazwę produktów, sumę kontrolną itd.
4. Wysyłasz formularz
5. Użytkownik zostaje przekierowany do Płatności24 i opłaca zamówienie.
6A. Użytkownik zostaje przekierowany na stronę z podziękowaniem.
6B. W tym samym czasie serwer przesyła do Ciebie informację o realizacji płatności. Informacja zawiera nr transakcji, zamówienia, kwotę itd. Przetwarzasz to u siebie i odznaczasz, że zamówienie zostało opłacone.

Ten post edytował ZaqU 16.05.2017, 10:17:28
Go to the top of the page
+Quote Post
hao
post 16.05.2017, 13:52:58
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


Co do literówki, to uprościłem kod i źle usunąłem nieistotne zmienne, w rzeczywistości to jest poprawnie :-)

No to wychodzi na to, że zrobiłem dokładnie tak jak napisałeś. No a jednak mam błąd.
A czym się różni trnRegister i trnRequest/{token}
może tu mam problem sad.gif

Dzięki za odpowiedź.
Go to the top of the page
+Quote Post
PawelJasiaczyk
post 19.05.2017, 08:07:53
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 19.05.2017

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


Witam serdecznie,

Sandbox i secure (czyli produkcja) w Przelewy24 korzystają z różnych kluczy CRC - sugeruję zweryfikować poprawność.
Do testów można też wykorzystać metodę testConnection - punkt 4 dokumentacji. Jak to zadziała a rejestracja transakcji nie - wówczas trzeba szukać dalej.

trnRegister to metoda w której rejestrujesz transakcje i dostajesz TOKEN, który następnie wykorzystujesz w treRequest/{TOKEN}.

Jeżeli chcesz wysłać parametry wprost z przeglądarki klienta bez rejestracji TOKENa, użyj trnDirect.
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: 5.05.2025 - 06:48