2011-12-21 14 views
10

Przeszedłem przez (nie tak pomocne) dokumenty PayPal i nie mogę znaleźć łatwej odpowiedzi na ten problem. Kiedy użytkownik wraca z serwisu PayPal, adres URL nie zawiera ciągu zapytania, a tym samym nie otrzymuję wartości "tx" (ani żadnej innej wartości).PayPal PDT nie zwraca wartości tx w ciągu zapytania

To jest przykład tego, co mam do wysyłania PayPal:

<form accept-charset="utf-8" action="https://www.sandbox.paypal.com/au/cgi-bin/webscr" id="paypal-form" method="post"> 
    <input type="hidden" name="business" value="[email protected]"> 
    <input type="hidden" name="cancel_return" value="http://localhost/checkout"> 
    <input type="hidden" name="cmd" value="_xclick"> 
    <input type="hidden" name="charset" value="utf-8"> 
    <input type="hidden" name="currency_code" value="AUD"> 
    <input type="hidden" name="custom" value="155"> 
    <input type="hidden" name="lc" value="AU"> 
    <input type="hidden" name="notify_url" value="http://localhost/paypal-ipn"> 
    <input type="hidden" name="return" value="http://localhost/checkout">   
    <input type="hidden" name="item_name" value="ABC Company - Order #155"> 
    <input type="hidden" name="item_number" value="155"> 
    <input type="hidden" name="amount" value="8.95"> 
    <input type="hidden" name="discount_amount" value="0.00"> 
    <input type="hidden" name="shipping" value="25.00"> 
    <input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" name="submit" alt="Buy Now"> 
</form> 

Z góry dzięki!

Odpowiedz

15

Należy sprawdzić ustawienia w https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_profile-website-payments i upewnij

  1. Automatyczny powrót jest włączona
  2. został podany adres URL Return
  3. transferu danych na temat płatności jest ustawiony na ON

Istnieje O wiele mniej oczywiste rzeczy musiałem nauczyć się poprzez eksperymenty: twój formularz nie może zawierać wartości "return", w przeciwnym razie zastąpi zwrotny URL w twoich ustawieniach i uniemożliwi automatyczny powrót do pracy, a skończysz bez koniecznego tx parametr. Jest to stosunkowo niedawne rozwinięcie (błąd?) W Paypal, ponieważ kiedyś działało.

+1

Mam to działa w witrynie na żywo, ale strona sandbox (dev) nie działa. Cholerny obszar piaskownicy nie zawsze działa zgodnie z oczekiwaniami lub działa na żywo: @. –

+0

@Daniel - Chociaż z pewnością zgadzam się, że strona piaskownicy jest pozornie ZAWSZE pomieszana, wartość "zwrotu" zdecydowanie działa i jest nadal zawarta w dokumentacji PP zaktualizowanej do końca listopada 2011. – JM4

2

Mam taki sam problem z piaskownicą podczas testów. Aby to naprawić, musiałem zweryfikować konta testowe w środowisku piaskownicy. Aby je zweryfikować, skorzystaj z wbudowanej usługi testowania poczty e-mail. Po weryfikacji piaskownica PayPal rozpoczęła wysyłanie parametru TX.

+0

To denerwujące i nie ma sensu, dlaczego oni by to zrobili. –

1

Po prostu borykałem się z tym od jakiegoś czasu, a inną rzeczą, która pozornie nie powoduje zwrotu wartości, jest sytuacja, jeśli masz darmowy okres próbny.

Jeśli zatem koszt usługi jest bezpłatny przez pierwsze 20 dni, a następnie 4,99, po otrzymaniu pierwszej bezpłatnej płatności nie otrzymasz wartości tx. Jeśli pobierasz jeden grosz (lub dowolną inną walutę) przez początkowy okres "darmowy", otrzymasz wartość tx zwróconą.

+0

W przypadku płatności bezpłatnych nie są przeprowadzane żadne transakcje, wartość tx odnosi się do transakcji handlowej. 0 USD jest normalnie pomyślnie przekazywane bez transakcji. –

4

Faktycznie zarejestrowaliśmy bilet w serwisie technicznym PayPal Merchant Technical Services, aby dotrzeć do sedna. Zauważyliśmy, że z biegiem czasu niektóre konta handlowców Paypal wydają się zapominać o ustawieniach AutoReturn/PDT.

Mimo że można było wejść do Preferencji witryny, zarówno Autoodzyskiwanie, jak i PDT były włączone; konto zachowywałoby się tak, jakby nie było włączone.

Procedura zresetować ustawienia ....

  • Kliknij na profilu.
  • Kliknij "Moje Preferencje sprzedawanie">
  • Kliknij "Preferencje Witryna"

(*) Bezpośredni odnośnik do tej sekcji, w przypadku, gdy nie można go znaleźć ->https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments

  • Wyłączyć zarówno automatyczny powrót, jak i transfer danych płatności.
  • Zapisz zmiany.
  • Dostęp do Preferencji WWW ponownie.
  • Włącz ponownie automatyczny powrót i transfer danych płatności.
  • Zapisz zmiany.
1

kilka innych powodów, dla których nie może uzyskać tx parametr:

  • Na PDT do pracy, należy potwierdzić adres e-mail używany jako wartość firmy w kodzie przycisku. Jeśli ten adres e-mail nie zostanie potwierdzony, funkcja PDT nie będzie działać. Jeśli Twój adres e-mail nie zostanie potwierdzony, nie zobaczysz łańcucha zapytania PDT dołączonego do zwrotnego adresu URL.

  • Po włączeniu funkcji PDT adres URL, który jest używany jako domyślny automatyczny adres URL, musi być prawidłową nazwą hosta lub adresem IP, inaczej użytkownik nie zostanie automatycznie przywrócony z powrotem do tego adresu URL. Upewnij się, że używasz prawidłowego adresu URL jako adresu URL miejsca, do którego chcesz wrócić, lub nie zobaczysz zamierzonego wyniku.

Od: https://ppmts.custhelp.com/app/answers/detail/a_id/469

1

znalazłem sposób, że pracował dla mnie - próby wstawienia tego pola do swojego wygenerowanego kodu forma:

<input type='hidden' name='rm' value='2'> 

rm oznacza powrót metoda;

oznacza post z zmiennych

niż po zakupach użytkowników i wraca do swojej strony URL, to url pobiera parametry POST oraz

PS: jeśli używasz php, spróbuj wstawić var_dump($_POST); w URL-ie zwrotnym (skrypt), a następnie dokonaj zakupu testowego, a po powrocie do witryny zobaczysz, jakie zmienne są dostępne w Twoim adresie URL.

0

Miałem podobny problem - gdy pracowałem z lokalnego serwera, użyłem do uzyskania zamiast zmiennej "tx", dostałem zmienną "auth". Po zabawie z nim przez chwilę, okazało się, że (z jakiegoś powodu przewodowego), jeśli zmienię mój wirtualny host i plik hosta, do prawdziwej domeny, otrzymuję zmienną 'tx', gdzie jak w mojej lokalnej domenie środowiskowej dostaję zmienna "auth". To naprawiło to dla mnie. Mam nadzieję, że to pomoże każdemu.

Powiązane problemy