2014-04-29 11 views
31

Błąd: header Security nie jest ważna Arraypaypal Ekspresowa realizacja => Błąd: header Security nie jest ważna

(
    [TIMESTAMP] => 2014%2d04%2d29T07%3a24%3a29Z 
    [CORRELATIONID] => 6af6749c848d6 
    [ACK] => Failure 
    [VERSION] => 109%2e0 
    [BUILD] => 10800277 
    [L_ERRORCODE0] => 10002 
    [L_SHORTMESSAGE0] => Security%20error 
    [L_LONGMESSAGE0] => Security%20header%20is%20not%20valid 
    [L_SEVERITYCODE0] => Error 
) 

ja dostaję ten błąd ponownie i ponownie i nie może poruszać się do przodu. Sprawdziłem wszystkie nazwy użytkownika, hasło i podpis API, wszystkie są poprawne, ale głównym problemem jest to, że wszystkie rzeczy są już zapisane na koncie PayPal, ale nie może ono wrócić do strony. Chodzi mi o to, że transekcja jest pokazywana na koncie sandbox, ale nie może przesyłać dalej do strony wyświetlania. Czy gdzieś się mylę?

Odpowiedz

58

Ogólnie ten błąd oznacza, że ​​nie używasz prawidłowych danych uwierzytelniających API. Jeśli jesteś przekonany, że twoje poświadczenia są poprawne, spójrz na swój punkt końcowy. Poświadczenia Sandbox nie będzie ważna w środowisku produkcyjnym i żywych poświadczenia będzie produkować ten błąd w piaskownicy

+7

I Otrzymałem ten sam błąd, co w oryginalnym pytaniu, kiedy korzystałem z następującego pakietu Golang PayPal: https://github.com/crowdmob/paypal. Jeśli ktoś inny napotka podobny błąd, odpowiedni PAYPAL_TEST_USERNAME można znaleźć pod Sandbox -> Konta -> Profil -> Poświadczenia API i będzie wyglądać jak nazwa_użytkownika-facilitator_api1.domena.com. To nie będzie zwykła nazwa uż[email protected] Na tej stronie znajdziesz również odpowiednie PAYPAL_TEST_PASSWORD. Mam nadzieję, że to kogoś oszczędza. – rudolph1024

+3

To dobra wskazówka. Dodam, że musisz wybrać profil BUSINESS, który jest nazwa_uż[email protected] w przeciwnym razie karta Poświadczenia API nie pojawi się w sekcji Profil. Oto zrzut ekranu http://slidemodel.com/images/misc/paypal-blur-credentials-screenshot.png – julianm

+4

Robię to kilka razy w roku i wciąż muszę to sprawdzić za każdym razem. Tym razem problem był następujący: @ rudolph1024 zasugerował: dodałem adres e-mail/nazwę użytkownika bez dołączania _api1. PayPal jest niedorzeczny. – phillyslick

1

API_USERNAME API_PASSWORD API_SIGNATURE PAYPAL_URL

oprócz nich to zmienić za:

** (od Sandbox> Live) **

+0

Opcje trybu ("sandbox" i "live") są małymi literami - musiały przekopać się przez kod źródłowy, aby nawet po raz pierwszy znaleźć te opcje, wartość "na żywo" nie pojawi się * w dowolnym miejscu * w dokumentach. – brichins

1

Niepoprawne dane uwierzytelniające Upewnij się, że nazwa użytkownika interfejsu API, hasło API i podpis API są prawidłowe. Czasami zdarza się, że podczas kopiowania i wklejania przypadkowo dodano spację, to spowodowałoby ten błąd. Podwójnie sprawdź ustawienia w SDK lub w panelu administracyjnym koszyka na zakupy stron trzecich.

Niepoprawny punkt końcowy Ten błąd wystąpiłby w przypadku wysłania danych do niewłaściwego punktu końcowego. Upewnij się, że wysyłasz aktualne dane uwierzytelniające i dane do naszego końcowego punktu końcowego. Jeśli chcesz przetestować swój sklep, upewnij się, że korzystasz z naszego testowego punktu końcowego i poświadczeń z konta testowego Sandbox. Jeśli korzystasz z zewnętrznego koszyka na zakupy, upewnij się, że Twój sklep działa w trybie testowym lub na żywo, podając dane, których używasz. NA ŻYWO

https://api-3t.paypal.com/nvp?&user=xxxxxxxxxx&pwd=xxxxxxxxxx&signature=xxxxxxxxxx&version=70.0&METHOD=SetExpressCheckout&RETURNURL=http://www.paypal.com/test.php&CANCELURL=http://www.paypal.com/test.php&PAYMENTACTION=Sale&AMT=50&CURRENCYCODE=USD

DLA piaskownicy

https://api-3t.sandbox.paypal.com/nvp?&user=xxxxxxxxxx&pwd=xxxxxxxxxx&signature=xxxxxxxxxx&version=70.0&METHOD=SetExpressCheckout&RETURNURL=http://www.paypal.com/test.php&CANCELURL=http://www.paypal.com/test.php&PAYMENTACTION=Sale&AMT=50&CURRENCYCODE=USD

Dla reffrence link

+1

edytuj swój wpis i link do [oryginalny wpis] (http://stackoverflow.com/a/23265150/1057527) gdzie skopiowałeś ten tekst z – machineaddict

2

To nie zawsze oznacza nieprawidłowy poświadczeń API lub niewłaściwy punkt końcowy

jeśli jesteś absolutnie pewny w tej informacji, sprawdź kodowanie g przy wysyłaniu żądania - powinno to być UTF-8 bez Znaku Byte-Order (BOM), np. (w Visual C#.NET)

var requestEncoding = new UTF8Encoding(false); // UTF-8 without BOM 

using (var streamWriter = new StreamWriter(request.GetRequestStream(), requestEncoding)) 
{ 
    streamWriter.Write(requestBody); 
} 

To nie wartość domyślną, i to pomogło mi po godzinie sprawdzając wszystko

Oczywiście, upewnij się wszystkich parametrów są URL zakodowane, zbyt

+0

to był mój problem przy aktualizacji starszego rozwiązania paypal –

Powiązane problemy