2016-07-11 2 views
0

PayPal에서 데이터를 다시 전송할 때 INVALID 응답이 계속 전송됩니다. 나는 지금까지 도움이되는 것없이 다른 게시물을 많이 읽었습니다. 이것이 내가 확인할 수있는 것입니다 :IPN 알림 Verification INVALID

  1. params의 순서는 같습니다.
  2. 데이터는 요청시 앞에 cmd=_notify-validate&이 붙은 것을 제외하고는 동일합니다.

    using (WebClient client = new WebClient()) 
    { 
        var nvc = new NameValueCollection { {"cmd", "_notify-validate"} }; 
        foreach (var f in formCollectionData.AllKeys) 
         nvc.Add(f, formCollectionData[f]); 
    
        try 
        { 
         ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 
         client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"; 
         var response = client.UploadValues(_urls[payPalResponse.test_ipn], "POST", nvc); 
         var result = System.Text.Encoding.UTF8.GetString(response); //returns "INVALID" 
        } 
        catch (Exception e) 
        { 
         ; 
        } 
    } 
    

    formCollectionData이 (MVC를 사용) 내 행동에 통해 공급되는 데이터입니다 :

이는 최대 데이터를 게시하는 몇 가지 빠른 해키 코드입니다. 이 데이터가 Request.Form.ToString() 인 것을 확인하여 올바른지 확인했습니다.

다른 방법을 사용하여 게시를 시도했지만 동일한 INVALID 결과를 얻었습니다.

페이팔 환경 설정에서 언어 인코딩을 UTF-8으로 변경하는 방법에 대해 읽었지만 IPN 시뮬레이터를 사용하고있는 이유를 잘 모르겠습니다.

나는 서클에서 돌아 다니는 것처럼 보이고 무엇을해야할지 모른다. 난 그냥 IPN 역사에가는 일을 다시는-보내고 제대로 근무하고있다가 내 샌드 박스 페이팔 계정에서이 작업을 시도했습니다

편집 할 수 있습니다. 확인 된 상태로 돌아옵니다.

이것은 제대로 작동하지 않는 IPN 시뮬레이터를 의미하므로 인코딩과 관련 있다고 가정합니다. UTF-8로 시뮬레이터의 인코딩을 보거나 변경할 수 있습니까?

+1

PayPal (https://www.paypal-techsupport.com/)에서 문제를보고 할 수 있습니다. 내 경험에 비추어 볼 때, IPN 시뮬레이터는 IPN 데이터의 호환되지 않는 인코딩으로 인해 문제를 일으켰습니다. – vandershraaf

답변

1

동일한 문제가 발생했습니다. 그것은 시뮬레이터와 오류가있는 것 같습니다.

시뮬레이터의 모든 날짜 입력란을 비워 두어보십시오. 양식 내의 특수 문자 중 일부가 문제를 일으키는 것으로 보입니다.

이것은 IPN 시뮬레이터의 버그 일 뿐이며 실제 IPN 메시지는 같은 방식으로 영향을받지 않습니다.

+0

나는 지난 주에 이것을 단지 테스트 했으므로 응답으로 마킹 지연에 사과드립니다. 실제로 문제를 해결했습니다. – webnoob