Ich arbeite in der Sandbox und mit der PayPal REST. NET SDK-Methode Payment.Create mit einem CreditCard-Objekt. Wenn alle Parameter gültig sind und die Test-CC-Nummer von https://developer.paypal.com/webapps/developer/docs/integration/direct/accept-credit-cards/ verwendet wird, wird das Zahlungsobjekt von dieser Methode zurückgegeben und alles ist in Ordnung.PayPal REST API. NET SDK - 400 ungültige Anfragen
Wenn ein Parameter nicht gültig ist, z. B. ein vergangenes Ablaufdatum oder eine CC-Nummer, die von der Sandbox nicht erkannt wird, wird das Zahlungsobjekt nicht zurückgegeben. Stattdessen löst die Methode eine Ausnahme aus: "Ausnahme in HttpConnection Execute: Ungültige HTTP-Antwort Der Remote-Server hat einen Fehler zurückgegeben: (400) Bad Request", aber ohne weitere Erklärung.
Wenn ich die gleiche Anfrage in cURL, zusätzlich zu der "400 Bad Request", bekomme ich eine JSON-Antwort. Dies beinhaltet hilfreichere Nachrichten wie "VALIDATION_ERROR" und "Ungültiger Ablauf (kann nicht in der Vergangenheit sein)".
Meine Frage: Gibt es eine Möglichkeit, diese Nachrichten vom SDK zurück zu bekommen?
Was ich versucht habe:
- PayPal docs: https://developer.paypal.com/webapps/developer/docs/api/#errors Dieses Dokument erwähnt, dass im Fall eines Fehlers sie die Details in dem Körper der Antwort zurück. Leider gibt es keinen Hinweis darauf, ob diese über das SDK zugänglich sind.
- Verschiedene Google und SO-Suchanfragen.
- Der PizzaApp-Beispielcode, der mit dem SDK bereitgestellt wird, hat keine Ausnahmebehandlung oder weitere Einblicke in dieses Problem.
- Ich sehe ein PayPalException-Objekt im SDK, aber nichts gefunden, das angibt, wie es verwendet werden sollte oder ob es sogar für dieses Problem relevant ist.
Alle Hilfe wird sehr geschätzt.
Vielen Dank für die Antwort. Das werde ich für zukünftige Anwendungen berücksichtigen. Leider hätte dies in dieser Situation nicht geholfen, da ich im Rahmen der Anwendung die Fehlerantwort zurück brauchte. Die Anwendung war auch Windows Forms, aber ich nehme an, dass ähnliche Änderungen an der app.config vorgenommen werden können, um die gleiche Protokollierung zu ermöglichen. –
Ich stieß auf dieses Problem, als ich versuchte, ein Stück aufzubauen, das mit der PP-API verbunden war, und ich frage mich, ob es eine Möglichkeit gibt, zu bekommen, was gerade eingeloggt ist. Andernfalls, wenn eine Karte abgelehnt wird (z. B. eine ungültige Nummer, eine abgelaufene Karte usw.), sagt uns die 400/Bad-Anfrage nichts darüber, warum sie nicht funktioniert hat, nur, dass sie nicht funktioniert hat. – RubyHaus
@digitall, genau! Deshalb musste ich die Hacks verwenden, die in der ersten Antwort erwähnt wurden. Ich habe nie einen Weg gefunden, dies mit der Stock-API zu tun, und wie Sie erwähnt haben, hilft die Protokollierung nicht viel in der App. –