Przestał mi działać stary system z paypal i od dwu dni kombinuję na sandbox.paypal mam taki efekt że jak wywołam link potwierdzenia z symulatora IPN na developer.paypal.com to widzę że wchodzi do linku, procedury się wykonują a jak robię symulowany zakup na kontach sandboxa, zakup jest dokonywany z buttona sprzedawcy, kasa za zakup przechodzi, historia IPN na koncie sprzedawcy mówi że potwierdzono transakcję a u mnie na serwerze ani śladu potwierdzenia.
Poproszę o wskazówki, co może być grane.
Gdzie jest błąd a może sandbox tylko udaje że potwierdza ?.

Coś nie ma chętnych, więc zadam pytanie uzupełniające. Może ktoś ma link do prostego systemu button->zapłata<-potwierdzenie<->weryfikacja->pełne dane do bazy z IPN
rozumiem to tak

  • po wciśnięciu przycisku :Kup teraz, logujesz się do własnego konta PayPal lub płacisz kartą płatniczą,

  • następuje auto przekierowanie do strony "thank-you.php" (jeżeli ustawisz w opcjach) sprzedawcy z krótkim nagłówkiem GET zawierającym podstawowe dane o transakcji.

  • jednocześnie następuje weryfikacja do pliku "ipn_listener.php" (jeżeli ustawisz w opcjach) :

    • PayPal wysyła do ciebie POST z pełnymi danymi na Twój serwer, link np "ipn_listener.php"
    • wysyłasz z pomocą ssl, otrzymane dane do weryfikacji na adres: 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr' lub bez sandbox
    • otrzymujesz potwierdzenie VERIFIED lub INVALID
    • odpowiednio zapisujesz dane do bazy transakcji i klientów.

Ja rozumiem jakieś zmiany. Wprowadzono pełne api ale jest tak skomplikowanie opisane że ręce opadają. Ale stary system button, prosty skrypt typu return i weryfikacji IPN działał wg powyższego schematu i przestał raptem działać ?. Teraz muszę to robic ręcznie z powiadomienia na email ?.
Mam kika pytań dodatkowych:
Trzeba umieszczać we wnętrzu zakresu <form></form> skryptu przycisku, pola ukryte (zawierające wszystkie potrzebne dane), poprzednio nie trzeba było umieszczać i wszystko działało i myslę że to umieszczanie pól jest bez sensu bo i po co jak tych danych nie masz. Oglądałem manual koleżanki M.Turek na stronie : http://designconcept.webdev20.pl/articles/paypal-standard-payment-integracja-w-php pisze że trzeba umieszczać te pola. Jednocześnie w weryfikacji IPN odbiera tylko te (podstawowe) informacje które dostarczane są z przekierowaniem bez IPN. A przecież potrzebny jest email klienta. Miałem to wszystko, działało i przestało działać. Było prosto i ktoś coś spieprzył.

**Dalszy ciąg moich dywagacji i wątpliwości ponieważ nie mam żadnego wsparcia lub temat może mało ciekawy ???. **

Zainteresowałem się tą armatą w postaci API jako plugin do Laravel-a i zdaje się potwierdza się że IPN został poważnie okrojony z danych. Patrze na świeże demo na Github https://github.com/srmklive/laravel-paypal-demo i widzę że baza w migracji 2018_08_21_161348_create_ipn_status_table.php nie ma wszystkich pól tych które w dalszym ciągu można wprowadzić ręcznie w polach symulatorze PayPal. Chodzi głównie o dane adresowe klienta. Są tylko pola podstawowe przekazywane pierwszą zwrotką GET. Co by potwierdzało że coś się z IPN zmieniło?. Nie wnikałem w kod bo może autor aplikacji okroił dane. I czy tabela user to tabela robiona przy zakupie czy to tabela klientów z dostępem do sklepu???. Sprawdzę to jeszcze.

Aż nie mogę uwierzyć że tylko mnie się przytrafiło że przestało to działać, czyżby Wasi klienci nie reklamowali że nie działa czy może nikt nie używał tego systemu w opisany wyżej w punktach sposób z rejestracją klienta po zwrotce IPN. Jakoś nie mogę uwierzyć że z symulatora działa po staremu a przy zakupie nie działa. Zobaczcie zestaw pól w symulatorze:
https://developer.paypal.com/developer/ipnSimulator/ po wybraniu [ Express checkout ] pojawia się cały zestaw danych transakcji i klienta. Oczywiście link zadziała jeżeli zalogujecie się na konto sprzedawcy. Pewnie nawet konta sandbox nie zadziała ?.

Uwaga !!! Po kilku dniach śledztwa problem rozwiązany, będę miał chwile to wyjaśnię.

Jak zawsze w dziwnych sprawach, przyczyna jest prozaiczna. Sprawa wyjaśniła się jak przeniosłem potwierdzenie IPN na inny hosting, zaczęło działać. Więc skonsultowałem się z adminem hostingu podstawowego i przyczyny były też prozaiczne. Nie zmieniłem wersji PHP na 7+ a PayPal tego wymagał (a co przeoczyłem) a poza tym na hostingu była też biała lista IP na której nie było sanboxa. Charakteryzowało się tym ze pytanie z PayPala grzęzło zaraz po logu serwera www. W logu było wszystko OK a do skryptu nie trafiało. Zamykam temat ...**

pozdrawiam
AK.