AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Paypal über die REST API Exception
Thema durchsuchen
Ansicht
Themen-Optionen

Paypal über die REST API Exception

Ein Thema von Mavarik · begonnen am 8. Jul 2017 · letzter Beitrag vom 10. Nov 2020
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#1

Paypal über die REST API Exception

  Alt 8. Jul 2017, 19:23
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:
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;
Mavarik

Geändert von Mavarik ( 9. Jul 2017 um 10:00 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Paypal über die REST API Exception

  Alt 10. Jul 2017, 09:34
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.

http://www.delphipraxis.net/1363588-post15.html

Vielleicht einfach mal den Aufbau des Requests von Postman und von dir vergleichen?
Irgendwo muss es ja einen Unterschied geben.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Paypal über die REST API Exception

  Alt 10. Jul 2017, 14:34
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.
SSL?!? bzw. https nicht ganz so einfach, oder?

Wie ich geschrieben habe... der Request auf einen eigenen Server ohne https sieht alles gleich aus...
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Paypal über die REST API Exception

  Alt 10. Jul 2017, 15:05
Explizit den TRESTRequestParameterOption.poDoNotEncode aus- bzw. einschalten?!
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Paypal über die REST API Exception

  Alt 10. Jul 2017, 15:08
SSL?!? bzw. https nicht ganz so einfach, oder?
Fiddler und HTTPS/TLS geht: Fiddler ist gegenüber dem Client ein HTTPS Server mit eigenem Zertifikat, kann die Nachricht daher im Klartext lesen und loggen.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Paypal über die REST API Exception

  Alt 11. Jul 2017, 08:57
Explizit den TRESTRequestParameterOption.poDoNotEncode aus- bzw. einschalten?!
Ich nutze keine REST Komponente sondern nativ HTTP(s)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Paypal über die REST API Exception

  Alt 11. Jul 2017, 09:35
SSL?!? bzw. https nicht ganz so einfach, oder?
Fiddler und HTTPS/TLS geht: Fiddler ist gegenüber dem Client ein HTTPS Server mit eigenem Zertifikat, kann die Nachricht daher im Klartext lesen und loggen.
Gruselig... Man in the middle... Klappt aber...

Auch hiermit sehe ich keine Unterschiede...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: Paypal über die REST API Exception

  Alt 9. Nov 2020, 15:31
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?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#9

AW: Paypal über die REST API Exception

  Alt 9. Nov 2020, 19:41
Ich habe es jetzt mal auf die schnelle mit REST-Komponenten zusammengeklickt und bekomme so ein Token:

Delphi-Quellcode:
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;
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.

Vielleicht reicht dir der Schnipsel ja schon, sonst kann ich das Demoprojekt auch gerne anfügen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#10

AW: Paypal über die REST API Exception

  Alt 10. Nov 2020, 07:15
Lutsch mich rund und nenn mich Bärbel, das funktioniert (zumindest unter Sydney) . Herzlichen Dank, jetzt komme ich endlich weiter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz