Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PayPal, IPN i walidacja cen produktów
Forum PHP.pl > Forum > PHP
relaxant
Witam,

Staram się zintegrować Website Payment Standart PayPal'a ze swoim serwisem. Koszyczek ładnie działa w sandboxie, tranzakcje ładnie przechodzą, ale...
Dane do serwisu PayPal przesyłane są POST'em bezpośrednio z formularza HTML (co przekierowuje klienta od razu do serwisu płatności). Problem polega na tym, że jeżeli zmienie sobie odpowiednie dane w formularzu (np Firebug) to takie błędne dane lecą do PayPal, operacja przechodzi i w skutek tego klient może kupić sobie coś we własnoręcznie spreparowanej promocji. Jak się przed tym zabezpieczyć?
Wg któregoś pliczku pdf dokumentacji PayPal'a dane o tranzakcji można weryfikować w IPN. Jeżeli tak to jak to powinno być zrobione? Nie wywoływać weryfikacji? a może jest jakaś magiczna metoda do przerwania tranzakcji?
ikssde
Nie wiem jak to jest rozwiązane w paypalu, ale w wielu systemach płatności spotkałem się z kodem weryfikacyjnym w postaci hasha podanych informacji. Z resztą pewnie na pewno, paypal zwraca ilość wpłaconych środków, którą to możesz porównać z ilością środków potrzebnych do realizacji zamówienia.

Poczytam trochę na ten temat i później dam Ci znać, jeśli oczywiście to co napisałem jest nieprawdą smile.gif
relaxant
Problem rozwiązany. W PayPal Website Payment Standart można zastosować szyfrowanie (OpenSSL) samego forma. Wygenerowny klucz prywatny zostawiamy dla siebie, publiczny upload'ujemy do PayPal'a. Sam form w html'u wygląda tak że ma trzy inputy:
  • cmd - wywoływana komenda
  • encrypted - zaszyfrowane dane
  • submit smile.gif

reszta bez zmian.

Cytat
w wielu systemach płatności spotkałem się z kodem weryfikacyjnym w postaci hasha podanych informacji. Z resztą pewnie na pewno, paypal zwraca ilość wpłaconych środków, którą to możesz porównać z ilością środków potrzebnych do realizacji zamówienia.t


Też widziałem podobne rozwiązania, ale w tym wypadku dodanie hash'a nic daje. Wszystkie dane dot. tranzakcji są i tak wysyłane przez IPN więc mając hasha (badź nie smile.gif ) możemy jedynie ustalić sami dla siebie czy tranzakcja jest zmieniona czy nie. Jednak w żaden sposób nie możemy wpłynąć na przebieg operacji po stronie PayPal'a. W panelu pozostaje zrobienie refunda albo dogadywanie z klientem żeby zapłacił brakującą kwote. Oba rozwiązania nie akceptowalne.

Tak więc szyfrowanie rozwiązuje problem. Mam nadzieję że powyższe info komuś się przyda.
Szczegółowe informacje w doku: PP_WebistePaymentsStandard_IntegrationGuide.pdf
oraz na stronie: PayPal X Developer Network - bilioteka szyfrująca w PHP

P.s. Właściciele sklepów na presta shop i podobnych z aktywną formą płatności PayPal, sprawdźcie sobie jak to wygląda u Was smile.gif

Pozdrawiam
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.