To jest pytanie uzupełniające do: PHP: Łatwy sposób na rozpoczęcie realizacji transakcji PayPal?
Tak więc mój problem polega na tym, że określam zwrotny adres URL. Jednak po zapłaceniu przez PayPal widzę ekran, na którym jest napisane:
Właśnie zakończyłeś płatność. XXXX, właśnie zakończyłeś płatność. Twój identyfikator transakcji dla tej płatności to: XXXXXXXXXXXXX.
Wyślemy wiadomość e-mail z potwierdzeniem na adres [email protected]. Ta transakcja pojawi się na Twoim wyciągu jako PAYPAL.
Go to PayPal account overview
Potrzebuję go, aby nie pokazywał tego ekranu i przechodził bezpośrednio do zwrotnego adresu URL. Mam:
- Ustaw zmienną „return”
- Ustaw zmienną „rm” na: 2 (która zgodnie z guide = „ przeglądarka kupującego jest przekierowywana na zwrotny adres URL metodą POST i uwzględniane są wszystkie zmienne płatności ”)
W rzeczywistości oto cała moja forma:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
Masz jakiś pomysł, jak mogę automatycznie wrócić? Alternatywnie, w jaki sposób mogę odzyskać wynik płatności na mojej stronie internetowej, aby zaktualizować bazę danych? Co to jest IPN?
Odpowiedzi:
Musisz włączyć automatyczny zwrot na swoim koncie PayPal, w przeciwnym razie zignoruje to
return
pole.Z dokumentacji (zaktualizowano w celu odzwierciedlenia nowego układu ze stycznia 2019 r.):
IPN służy do natychmiastowego powiadamiania o płatnościach. Zapewnia bardziej wiarygodne / przydatne informacje niż te, które uzyskasz dzięki automatycznemu zwrotowi.
Dokumentacja IPN jest dostępna tutaj: https://www.x.com/sites/default/files/ipnguide.pdf
Dokumentacja online dla IPN: https://developer.paypal.com/docs/classic/ipn/gs_IPN/
Ogólna procedura polega na przekazaniu
notify_url
parametru wraz z żądaniem i skonfigurowaniu strony, która obsługuje i weryfikuje powiadomienia IPN, a PayPal będzie wysyłać żądania do tej strony, aby powiadomić Cię o płatnościach / zwrotach / itp. iść przez. Ta strona obsługi IPN byłaby wówczas właściwym miejscem do aktualizacji bazy danych w celu oznaczenia zamówień jako opłaconych.źródło
My Selling Tools
Krok 4) KliknijWebsite Preferences
podSelling Online
return
”. Każdyreturn
parametr adresu URL przekazany do kasy byłby honorowany i zastępowałby dowolny adres URL automatycznego zwrotu (lub jego brak) skonfigurowany w profilu konta PayPal sprzedającego, ale jeśli nie ma on tam włączonego automatycznego zwrotu, kupujący musiałby ręcznie kliknąć obok pola koniec kasy, aby zostać przekierowanym na ten adres URL, zamiast być przekierowywanym automatycznie.Przykładowy formularz wykorzystujący PHP do płatności bezpośrednich.
uprzejmie przejdź przez pola notify_url, return, cancel_return
przykładowy kod do obsługi IPn (my_ipn.php), którego żąda PayPal po dokonaniu płatności.
Więcej informacji na temat tworzenia IPN można znaleźć pod tym linkiem.
Poniższy obrazek pomoże ci w zrozumieniu procesu paypal.
Więcej informacji można znaleźć pod następującymi linkami;
mam nadzieję, że to ci pomoże ... :)
źródło
w jeden sposób znalazłem:
spróbuj wstawić to pole do wygenerowanego kodu formularza:
rm oznacza metodę powrotu ;
2 oznacza (post)
Następnie po zakupie przez użytkownika i powrocie do adresu URL Twojej witryny, ten adres URL również otrzymuje parametry POST
ps jeśli używasz php, spróbuj wstawić
var_dump($_POST);
swój adres zwrotny (skrypt), a następnie dokonaj zakupu testowego, a po powrocie do witryny zobaczysz, jakie zmienne znajdują się w twoim adresie URL.źródło
Udostępniam to, ponieważ ostatnio napotkałem problemy podobne do tego wątku
Mój skrypt przez długi czas działał dobrze (podstawowa forma płatności) i zwracał zmienne POST na moją stronę success.php i dane IPN również jako zmienne POST. Jednak ostatnio zauważyłem, że strona zwrotna (success.php) nie otrzymywała już żadnych zmiennych POST. Testowałem w piaskownicy i na żywo i jestem prawie pewien, że PayPal coś zmienił!
Powiadomienie_url nadal otrzymuje prawidłowe dane IPN, co pozwala mi zaktualizować bazę danych, ale nie udało mi się wyświetlić komunikatu o powodzeniu na mojej stronie zwrotnego adresu URL (success.php).
Pomimo próbowania wielu kombinacji w celu włączania i wyłączania opcji w preferencjach płatności w witrynie PayPal i IPN, musiałem wprowadzić pewne zmiany w moim skrypcie, aby upewnić się, że nadal mogę przetworzyć wiadomość. Osiągnąłem to, włączając PDT i Auto Return, po wykonaniu tego doskonałego przewodnika .
Teraz wszystko działa dobrze, ale jedynym problemem jest to, że zwrotny adres URL zawiera wszystkie zmienne PDT, co jest brzydkie!
Może się również okazać pomocne
źródło
Myślę, że pomysł ustawienia wartości Auto Return, jak opisano powyżej przez Kevina, jest trochę dziwny!
Załóżmy na przykład, że masz wiele witryn internetowych, które używają tego samego konta PayPal do obsługi płatności lub powiedz, że masz kilka sekcji w jednej witrynie, które wykonują różne zadania zakupowe i wymagają różnych adresów zwrotnych podczas płatności jest zakończony. Jeśli umieszczę przycisk na mojej stronie, jak opisano powyżej w sekcji `` Przykładowy formularz używający PHP do płatności bezpośrednich '', zobaczysz, że jest tam wiersz:
gdzie ustawiasz indywidualną wartość zwracaną. Dlaczego trzeba to ustawić ogólnie, także w sekcji profilu?!?!
Ponadto, ponieważ możesz ustawić tylko jedną wartość w sekcji profilu, oznacza to (AFAIK), że nie możesz użyć funkcji automatycznego powrotu w witrynie z wieloma akcjami.
Komentarze proszę?
źródło
return
wartościami dla poszczególnych przycisków ? Czy mogę mieć różne strony zwrotne, które nadal będą otrzymywać dane PDT?na stronie kasy poszukaj ukrytego elementu formularza „cancel_return”:
ustaw wartość elementu formularza cancel_return na adres URL, do którego chcesz powrócić:
źródło