Sto lavorando nella sandbox e utilizzo il metodo REST .net SDK di PayPal Payment.Creare con un oggetto CreditCard. Quando tutti i parametri sono validi e si utilizza il numero CC di prova da https://developer.paypal.com/webapps/developer/docs/integration/direct/accept-credit-cards/, l'oggetto Pagamento viene restituito da tale metodo e tutto va bene.API REST di PayPal .net SDK - 400 richieste errate
Tuttavia, quando un parametro non è valido, ad esempio una data di scadenza passata o un numero CC non riconosciuto dalla sandbox, l'oggetto Pagamento non viene restituito. Invece il metodo genera un'eccezione: "Eccezione in HttpConnection Execute: risposta HTTP non valida Il server remoto ha restituito un errore: (400) Richiesta errata", ma senza ulteriori spiegazioni.
Quando eseguo la stessa richiesta in cURL, oltre alla "400 Richiesta non valida", ottengo una risposta JSON. Ciò include più messaggi utili come "VALIDATION_ERROR" e "Scadenza non valida (non può essere nel passato)".
La mia domanda: c'è un modo per recuperare questi messaggi dall'SDK?
Quello che ho provato:
- PayPal docs: https://developer.paypal.com/webapps/developer/docs/api/#errors Questo documento afferma che, nel caso di un errore, tornano i dettagli nel corpo della risposta. Sfortunatamente, non ha la minima idea se questi siano accessibili dall'SDK.
- Varie ricerche Google e SO.
- Il codice di esempio PizzaApp fornito con SDK non ha nulla a che fare con la gestione delle eccezioni o ulteriori informazioni su questo problema.
- Vedo un oggetto PayPalException nell'SDK, ma non ho trovato nulla che indichi come dovrebbe essere usato o se è anche rilevante per questo problema.
Tutto l'aiuto è molto apprezzato.
Grazie per la risposta. Lo terrò a mente per le applicazioni future. Sfortunatamente, questo non avrebbe aiutato in questa situazione, poiché avevo bisogno che la risposta all'errore tornasse nell'ambito dell'applicazione. Inoltre, l'applicazione era Windows Form, ma presumo che potrebbero essere apportate modifiche simili a app.config per abilitare la stessa registrazione. –
Stavo correndo questo problema mentre cercavo di creare un pezzo che si collegasse all'API di PP e mi chiedo se c'è un modo per ottenere anche ciò che è registrato per essere restituito? Altrimenti quando una carta viene rifiutata (come un numero non valido, una carta scaduta, ecc.) La 400/Richiesta non ci dice nulla sul motivo per cui non ha funzionato, solo che non lo ha fatto. – RubyHaus
@digitall, esattamente! Ecco perché ho dovuto usare gli hack menzionati nella prima risposta. Non ho mai trovato il modo di farlo con l'API di riserva e, come hai detto, il logging non aiuta molto dall'interno dell'app. –