Sto facendo un’applicazione per moduli web asp.net che offre di pagare usando paypal. Si suppone che l’applicazione faccia uso di ssl. Quando eseguo la mia applicazione va tutto bene fino a quando non seleziono il mio pulsante di pagamento tramite paypal. Quando preme questo pulsante si verifica il seguente errore:
La richiesta è stata interrotta: imansible creare il canale protetto SSL / TLS.
- Come creare un pulsante PayNow Encrypted "al volo" per i clienti di terze parti, utilizzando l'API PayP NVP?
- Generazione di firme per l'intestazione dell'autenticazione PayPal in C #
- Paypal IPN Simulator restituisce sempre INVALID nonostante il postback sia corretto
- Chiamata API di pagamento adattivo Paypal con C # .NET? Preferibilmente con WebServices
- Integrazione di Paypal Ipn con asp.net MVC
Descrizione: si è verificata un’eccezione non gestita durante l’esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull’errore e sulla sua origine nel codice.
Dettagli eccezione: System.Net.WebException: la richiesta è stata interrotta: imansible creare il canale protetto SSL / TLS.
Errore di origine:
- Confusione dell'API di PayPal: quale utilizzare per ExpressCheckout
- Come integrare PayPal con l'applicazione desktop WinForm
- Esiste un campione per l'IPN PayPal
- Problema del listener IPN di Paypal in C #
- Come creare e utilizzare gli account sandbox PayPal?
Linea 203: Linea 204: // Recupera la risposta restituita dalla chiamata dell’API NVP a PayPal. Riga 205: HttpWebResponse objResponse = (HttpWebResponse) objRequest.GetResponse (); Riga 206: risultato stringa; Riga 207: utilizzo (StreamReader sr = new StreamReader (objResponse.GetResponseStream ()))
File di origine: C: \ Users \ willem \ documents \ visual studio 2015 \ Projects \ WingtipToys \ WingtipToys \ Logic \ PayPalFunctions.cs
Linea: 205
Sotto il mio metodo in cui si verifica l’errore
public string HttpCall(string NvpRequest) { string url = pEndPointURL; string strPost = NvpRequest + "&" + buildCredentialsNVPString(); strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode); HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); objRequest.Timeout = Timeout; objRequest.Method = "POST"; //objRequest.ContentLength = strPost.Length; try { using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream())) { myWriter.Write(strPost); } } catch (Exception) { // No logging for this tutorial. } //Retrieve the Response returned from the NVP API call to PayPal. HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); string result; using (StreamReader sr = new StreamReader(objResponse.GetResponseStream())) { result = sr.ReadToEnd(); } return result; }
Il tuo snippet di codice non specifica il protocollo di sicurezza da utilizzare da quello che posso dire –
Esempio:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
L’ho trovato dopo aver esaminato diversi metodi di autenticazione contro l’API di PayPal.
C’è un argomento correlato qui che merita il merito. problemi-con-paypal-api-http-call
Nota: questa risposta è stata aggiunta dopo la stringa di commenti sulla domanda OP originale.