![]() |
Paypal über die REST API Exception
Hallo Zusammen!
Ich versuche gerade von der Paypal Sandbox ein Token zu erhalten. Ich mache überall das gleiche: REST-Debugger (Leerer Result) Delphi 10.0 / Delphi 10.1 Exception Empty Certifikatsliste Delphi 10.2 "INTERNAL_SERVICE_ERROR" Das einzige wo es funktioniert ist: PostMan (wie von Paypal vorgeschlagen) Hier kommt JSON und das Token zurück... Hat jemand ne Idee? Edit: Wenn ich einen eigenen Server (Ohne SSL) als Ziel angebe, sieht es für mich so aus, als würden alle Clients genau das gleiche senden...
Delphi-Quellcode:
Mavarik
procedure TForm238.Button1Click(Sender: TObject);
function NoCRLF(Const S: String) : String; begin Result := StringReplace(S,#13#10,'',[rfreplaceall]); end; var Content : TStringList; Response : IHttpResponse; Basic : String; begin Content := TStringList.Create; try Content.Add('grant_type=client_credentials'); Basic := NoCRLF(TNetEncoding.Base64.Encode('<UserID>:<Secret>')); Req.CustomHeaders['Accept'] := 'application/json'; Req.CustomHeaders['Accept-Language'] := 'en_US'; Req.CustomHeaders['Content-Type'] := 'application/x-www-form-urlencoded'; Req.CustomHeaders['Authorization'] := 'Basic '+Basic; Memo1.Lines.Clear; Response := Req.Post('https://api.sandbox.paypal.com/v1/oauth2/token',Content); Memo1.Lines.Add('Content-Length : '+Response.ContentLength.ToString); Memo1.Lines.Add(Response.StatusCode.ToString+' '+Response.StatusText); Memo1.Lines.Add(Response.ContentAsString()) finally Content.Free; end; end; |
AW: Paypal über die REST API Exception
Ohne eine konkrete Lösung für dich zu haben, aber hast du auch andere REST-Debugger/-Tester ausprobiert außer Postman?
Ich hatte vor Kurzem auch ein Problem mit einer REST-Schnittstelle und konnte das Problem nur erkennen, weil ich in Fiddler den händisch eingegebenen Request mit dem von meiner Delphi-Anwendung verglichen habe und dadurch sehen konnte, das ich die URL nicht codieren darf. ![]() Vielleicht einfach mal den Aufbau des Requests von Postman und von dir vergleichen? Irgendwo muss es ja einen Unterschied geben. |
AW: Paypal über die REST API Exception
Zitat:
Wie ich geschrieben habe... der Request auf einen eigenen Server ohne https sieht alles gleich aus... |
AW: Paypal über die REST API Exception
Explizit den TRESTRequestParameterOption.poDoNotEncode aus- bzw. einschalten?!
|
AW: Paypal über die REST API Exception
Zitat:
|
AW: Paypal über die REST API Exception
Zitat:
|
AW: Paypal über die REST API Exception
Zitat:
Auch hiermit sehe ich keine Unterschiede... |
AW: Paypal über die REST API Exception
Ich greife den alten Thread noch einmal auf, da ich vor demselben Problem stehe. Postman/Talend API-Tester funktioniert, in Delphi mit Indy Error 400. Ich habe mir jetzt extra Sydney samt PayPal Enterprise Connector installiert: Anmeldung schient zu funktionieren, der Token bleibt leer. Da der Fehler 400 ist und nicht 401, vermute ich, dass PayPal irgendetwas an meinem Body zu bemängeln hat (Content-Type application/x-www-url-encoded, Inhalt grant_type=client_credentials). Ich habe es schon mit Stringliste und UTF8-kodiertem StringStream versucht, immer dasselbe. Muss ich meinen Delphi-Webserver in die Tonne treten und alles noch einmal in NestJS schreiben, oder hat jemand noch eine zündende Idee?
|
AW: Paypal über die REST API Exception
Ich habe es jetzt mal auf die schnelle mit REST-Komponenten zusammengeklickt und bekomme so ein Token:
Delphi-Quellcode:
Wichtiger Unterschied zur Paypal-Anleitung: ich war mal so frei und habe als Content-Type "text/plain" genommen anstelle dieses www-form-urlencoded-Gedöns. Das scheint dann zu funktionieren.
procedure TForm2.Button1Click(Sender: TObject);
begin PaypalAuthReq.ClearBody; PaypalAuthReq.Body.Add('grant_type=client_credentials',ctTEXT_PLAIN); PaypalAuthReq.Execute; if PayPalAuthResponse.StatusCode<300 then MemoResult.Lines.Text:='Erfolg.' else MemoResult.Lines.Add('Fehlercode: '+PayPalAuthResponse.StatusCode.ToString); MemoResult.Lines.Add(PayPalAuthResponse.Content); end; Vielleicht reicht dir der Schnipsel ja schon, sonst kann ich das Demoprojekt auch gerne anfügen. |
AW: Paypal über die REST API Exception
Lutsch mich rund und nenn mich Bärbel, das funktioniert (zumindest unter Sydney) :thumb:. Herzlichen Dank, jetzt komme ich endlich weiter.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz