I'm working in the sandbox and using the PayPal REST .net SDK method Payment.Create with a CreditCard object. When all parameters are valid and using the test CC number from https://developer.paypal.com/webapps/developer/docs/integration/direct/accept-credit-cards/, the Payment object is returned from that method and all is well.
However, when a parameter is not valid, such as a past expiration date or a CC number not recognized by the sandbox, the Payment object is not returned. Instead the method throws an exception: "Exception in HttpConnection Execute: Invalid HTTP response The remote server returned an error: (400) Bad Request", but with no further explanation.
When I execute the same request in cURL, in addition to the "400 Bad Request", I get a JSON response. This includes more helpful messages such as "VALIDATION_ERROR" and "Invalid expiration (cannot be in the past)".
My question: Is there a way to get these messages back from the SDK?
What I've tried:
- PayPal docs: https://developer.paypal.com/webapps/developer/docs/api/#errors This document mentions that in the case of an error, they return the details in the body of the response. Unfortunately, it doesn't give a clue about whether these are accessible by the SDK.
- Various Google and SO searches.
- The PizzaApp sample code provided with the SDK has nothing in the way of exception handling or further insight into this problem.
- I see a PayPalException object in the SDK, but have not found anything that indicates how it should be used or if it's even relevant to this problem.
All help is much appreciated.