2012-09-17 5 views
4

저는 지난 몇 개월 동안 온라인 상점을 구현하고 paypal payments pro gateway의 paypal 샌드 박스에 성공적으로 연결했습니다. 그것은 처음부터 완벽하게 작동했습니다.Paypal Payments 관련 문제

주말 내내 더 이상 작동하지 않으므로. 상점에서 다음과 같은 오류가 발생합니다.

 
    ERROR CALLING PAYMENT GATEWAY 

    The trace gives me this error: 

    Could not create SSL/TLS secure channel 

    Page URL:/checkoutreview.aspx Source:System.Web.Services Message:The request was aborted: Could not create SSL/TLS secure channel. 
    Stack Trace: 
    at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) 
    at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) 
    at AspDotNetStorefrontGateways.Processors.PayPalAPIAASoapBinding.DoDirectPayment(DoDirectPaymentReq DoDirectPaymentReq) in C:\Development\Natrol\AspDotNetStorefront\ASPDNSFGateways\PayPalSvcAPIv30.cs:line 956 
    at AspDotNetStorefrontGateways.Processors.PayPal.ProcessCard(Int32 OrderNumber, Int32 CustomerID, Decimal OrderTotal, Boolean useLiveTransactions, TransactionModeEnum TransactionMode, Address UseBillingAddress, String CardExtraCode, Address UseShippingAddress, String CAVV, String ECI, String XID, String& AVSResult, String& AuthorizationResult, String& AuthorizationCode, String& AuthorizationTransID, String& TransactionCommandOut, String& TransactionResponse) in C:\Development\Natrol\AspDotNetStorefront\ASPDNSFGatewayProcessors\GatewayPayPal\PayPal.cs:line 415 
    at AspDotNetStorefrontGateways.GatewayTransaction.CallGateway(String gateway) in C:\Development\Natrol\AspDotNetStorefront\ASPDNSFGateways\GatewayTransaction.cs:line 205 
    at AspDotNetStorefrontGateways.GatewayTransaction.Process() in C:\Development\Natrol\AspDotNetStorefront\ASPDNSFGateways\GatewayTransaction.cs:line 176 

여기 무슨 일이 일어나고 있습니까? 어떤 아이디어가 있었고 어떻게 해결 했습니까? 왜 갑자기 깨졌을까요?

덕분에, 마이클

난 당신이 "인증서에 반대"서명 "을 사용하는 것 같은데요

답변

2

: 정식 그리고

페이팔 샌드 박스 환경 테스트 할 때 가능성이 혼동됩니다 로컬 IP에서 실행?를 :) (paypal의 공식 응답) 일부 호출에서 "인증서"를보고 싶습니다.

우리는 APISignature 인증을 사용하여 .NET paypal API SDK를 사용하는 경우가 있습니다. - 우리는 끝점을 변경할 방법이 없습니다. .NET SDK 버전 51), 인증서가 설치되어 있지 않습니다 (서명 au가 필요하지 않음). th). 프로필을 만드는 기능은 샌드 박스 (CreateRecurringPaymentsProfile)에서 FINE으로 작동하지만 트랜잭션 조회 (TransactionSearch)를 수행하면 "SSL/TLS 보안 채널을 만들지 못했습니다."라는 결과가 발생합니다. "라이브"환경으로 이동하면 두 가지 모두 정상적으로 작동합니다. "인증의 인증서를 설치하고 그것을 잘 작동하는 것 같다 왕실의 피타 어느

3

당신이 사용하는 경우 다음 것은 사실이다 인증서.."서명 "

우리가 발견 한 유일한 수정으로 변경하는 것입니다 인증 :. https://api-3t.sandbox.paypal.com/2.0/

내가 페이팔의 SDK에있는 "페이팔-endpoint.xml"에서 샌드 박스에 대한 엔드 포인트를 변경 그렇게하려면 :

포인트가 몇 주 전에 엔드 포인트 https://api.sandbox.paypal.com/2.0/ 작동이 중지 이제 대신 하나를 사용한다는 것입니다. SDK를 다운로드하고 "paypal-endpoint.xml"을 찾고 샌드 박스 섹션을 찾고 주소를 하나씩 변경하십시오. 위의 ined. 그런 다음 paypal_base.dll을 다시 컴파일하고 사용하십시오.

다음은 매우 유사한 해결책으로 게시되었지만 XML은 web.config : www. x. COM/개발자/페이팔/포럼/페이팔 샌드 박스/C-SDK-샌드 박스 세 토큰 엔드 포인트

구글 현재 페이팔의 엔드 포인트

+0

당신이 paypal_base.dll를 사용하는 경우, 당신은 변경해야하는 URL이 안에 내장되어 페이팔 (아무런으로) 새로운 하나를 공개하지 않았습니다. 설정을 재정의하려면 web.config 파일에 다음을 추가해야합니다.(텍스트가 설명하기에는 너무 길기 때문에 아래 답변을 참조하십시오.) – tkerwood

9

당신이 paypal_base를 사용하는 경우에 대한 자세한 정보를 얻을 수있는 "페이팔 엔드 포인트"에 대한 .dll을 클릭하면 변경해야하는 URL이 내부에 포함되며 PayPal에서 새 URL을 공개하지 않습니다 (아직). 이 설정을 무시하려면 web.config 파일에 다음을 추가해야합니다. < configSections>에 다음을 추가하십시오.

<section name="paypal" type="com.paypal.sdk.core.ConfigSectionHandler, paypal_base"/> 

그런 다음 < 페이팔> 섹션을 추가하십시오.

<paypal> 
    <endpoints> 
     <wsdl> 
     <environment name="live"> 
      <port name="PayPalAPI">https://api.paypal.com/2.0/</port> 
      <port name="PayPalAPIAA">https://api-aa.paypal.com/2.0/</port> 
      <port name="PayPalAPI" threetoken="true">https://api-3t.paypal.com/2.0/</port> 
      <port name="PayPalAPIAA" threetoken="true">https://api-aa-3t.paypal.com/2.0/</port> 
     </environment> 
     <environment name="sandbox"> 
      <port name="PayPalAPI">https://api.sandbox.paypal.com/2.0/</port> 
      <port name="PayPalAPIAA">https://api-aa.sandbox.paypal.com/2.0/</port> 
      <port name="PayPalAPI" threetoken="true">https://api-3t.sandbox.paypal.com/2.0/</port> 
      <port name="PayPalAPIAA" threetoken="true">https://api-3t.sandbox.paypal.com/2.0/</port> 
     </environment> 
     </wsdl> 
    </endpoints> 
    </paypal> 

(https://www.x.com/developers/paypal/forums/paypal-sandbox/c-sdk-sandbox-three-token-endpoint 참조)

+0

이것은 많은 도움이되었습니다. 감사합니다. –

+0

예 대단한 대답 .. dll을 다시 컴파일 할 필요가 없습니다. config 섹션을 무시하십시오. 감사 – Doug