2013-05-03 4 views
1

ASP.NET C# 코드에서 SOAP 2.0 API를 사용하여 paypal express checkout을 설정하려고합니다. 우선은 샌드 박스를 사용하려고, 내가 판매자/구매자 테스트 계정, 수입 웹 서비스를 생성하고 내가 토큰을 얻으려고, 내 C# 코드에서 내가 가진 :Express PayPal 체크 아웃, SSL/TLS 보안 채널을 만들 수 없습니다.

 // Create the request object 
     SetExpressCheckoutRequestType pp_request = new SetExpressCheckoutRequestType(); 

     // Create the request details object 
     pp_request.SetExpressCheckoutRequestDetails = new SetExpressCheckoutRequestDetailsType(); 
     pp_request.SetExpressCheckoutRequestDetails.PaymentAction = paymentAction; 
     pp_request.SetExpressCheckoutRequestDetails.PaymentActionSpecified = true; 

     pp_request.SetExpressCheckoutRequestDetails.OrderTotal = new BasicAmountType(); 

     pp_request.SetExpressCheckoutRequestDetails.OrderTotal.currencyID = currencyCodeType; 
     pp_request.SetExpressCheckoutRequestDetails.OrderTotal.Value = paymentAmount; 

     pp_request.SetExpressCheckoutRequestDetails.CancelURL = cancelURL; 
     pp_request.SetExpressCheckoutRequestDetails.ReturnURL = returnURL; 

     SetExpressCheckoutResponseType response = (SetExpressCheckoutResponseType) caller.Call("SetExpressCheckout", pp_request); 

하지만 그 코드의 마지막 줄에이 발생을 오류 :

요청이 중단되었습니다. SSL/TLS 보안 채널을 만들지 못했습니다.

내가 잘못하고 있다니? 감사합니다. .

+0

당신은 대신이 라이브러리를 사용할 수 있습니다 : https://nuget.org/packages/Moolah –

+0

그것은 내 문제가 해결되지 않는 – ihorko

답변

1

귀하의 코드는 정확하지만 PayPal API는 몇 가지 사항에 관해서는 까다로울 수 있습니다. 한 가지주의해야 할 점은 지불 금액이 소수점 이하 2 자리로 반올림되지 않을 때 예외가 발생한다는 것입니다.

또한 구성 값이 올바른지 확인하십시오. 그 외에도 게시 한 코드는 SOAP API에 사용했던 코드와 같습니다. https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_NVPAPIOverview

내가 당신을 위해 모든 일을 할 수있는 라이브러리 제공 :

나는 내 마음에와 거래를 좀 더 쉽게 인 NVP의 API, 찬성 잠시 전에 SOAP API를 사용 중지 : https://github.com/davidduffett/Moolah#paypal-express-checkout

+0

안녕하세요 데이비드 https://github.com/davidduffett/Moolah

지침은 여기 페이팔 익스프레스 체크 아웃 사용하는 방법을 정확하게 보여 , 나는 당신의 libr을 시도했다. "SSL/TLS 보안 채널을 만들 수 없습니다."라는 예외가 발생했습니다. 문제 해결을 안내해 주시겠습니까? –

+0

야, 도서관에서 놀랍다. 그러나 Sarim의 발언을 찾아라. 참으로 작은 수정이 필요합니다. @SarimShekhani : 여기를 참조하십시오! http://stackoverflow.com/a/34950820/1057052 –

+0

기다려주세요! 그것을 찍었어! 대단히 감사합니다. 이전 댓글의 링크를 기억하십니까? ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12를 추가하기 만하면됩니다. "SetExpressCheckout"을 사용하기 전에. 필자의 경우 안전을 위해서, 나는 var gateway = new PayPalExpressCheckout (설정) –

관련 문제