2012-11-10 77 views
3

我想要實現寶dodirect方法,用戶可以在自己的網站直接進行支付,而不是重定向到用戶請求已中止:無法創建SSL/TLS安全通道。

所以說我已經加入此網址爲https://www.sandbox.paypal.com/wsdl/PayPalSvc.wsdl

,我使用下面的代碼

PayPalAPIAAInterfaceClient objpaypalapiaainterfaceclient = new PayPalAPIAAInterfaceClient("paypalapiaa"); 
     CustomSecurityHeaderType objcustomsecurityheadertype = new CustomSecurityHeaderType(); 
     objcustomsecurityheadertype.Credentials = new UserIdPasswordType(); 
     objcustomsecurityheadertype.Credentials.Signature = "a8ft-8ji.2tzocnfshfjj4ahgxn4avlxzply8bmsbupxafkbty2--c6p"; 
     objcustomsecurityheadertype.Credentials.Username = "fred_1350925179_biz_api1.gmail.com"; 
     objcustomsecurityheadertype.Credentials.Password = "1350925199"; 

     DoDirectPaymentReq objdodirectpaymentreq = new DoDirectPaymentReq(); 
     objdodirectpaymentreq.DoDirectPaymentRequest = new DoDirectPaymentRequestType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails = new DoDirectPaymentRequestDetailsType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentAction = new PaymentActionCodeType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentAction = PaymentActionCodeType.Sale; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentDetails = new PaymentDetailsType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard = new CreditCardDetailsType(); 
     //objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentDetails.InvoiceID = "1"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.IPAddress = Request.ServerVariables["remote_addr"].ToString(); 

     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CreditCardType = CreditCardTypeType.MasterCard; 

     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal = new BasicAmountType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner = new PayerInfoType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName = new PersonNameType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.currencyID = CurrencyCodeType.USD; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address = new AddressType(); 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.PaymentDetails.OrderTotal.Value = "120"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CreditCardNumber ="1111222233334444"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CVV2 = "258"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.ExpMonth = 9; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.ExpYear = 2013; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Payer = "[email protected]"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.FirstName = "Shakti"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.PayerName.LastName = "Kapoor"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Street1 ="test address"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.CityName = "Atlanta"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.StateOrProvince = "ga"; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.Country = CountryCodeType.US; 
     objdodirectpaymentreq.DoDirectPaymentRequest.DoDirectPaymentRequestDetails.CreditCard.CardOwner.Address.PostalCode = "12345"; 
     DoDirectPaymentResponseType objdodirectpaymentresponsetype = objpaypalapiaainterfaceclient.DoDirectPayment(ref objcustomsecurityheadertype, objdodirectpaymentreq); 
現在,當我運行這段代碼拋出異常富林

「 請求已中止

:合作沒有創建SSL/TLS安全通道。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.Net.WebException:請求已中止:無法創建SSL/TLS安全通道。

回答

0

對不起,我不能將其添加爲評論/問題。

好像貝寶證書之一不在信任列表。

您可以嘗試下載貝寶根證書並將其安裝爲受信任的CA?

我覺得這兩個鏈接可以幫助您: https://www.sslshopper.com/ssl-certificate-not-trusted-error.htmlhttp://raysilvadotnet.wordpress.com/2014/02/13/problema-system-net-webexception-the-request-was-aborted-could-not-create-ssltls-secure-channel/ (抱歉,不能插入超過2個鏈接正常鏈接)

另外,請確保您通過登錄/密碼,不證書認證。如果您使用API​​的證書,則應遵循this link的最後一段

1

您可以使用https://www.ssllabs.com/ssltest來確認https://www.sandbox.paypal.com的SSL協議。該截圖顯示,它支持TLS 1.2 enter image description here您需要將以下兩行,在製作的HttpClient調用點添加到您的代碼:

ServicePointManager.Expect100Continue = TRUE; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

樣本:enter image description here 實施應解決的問題。

相關問題