PayPal에서 데이터를 다시 전송할 때 INVALID
응답이 계속 전송됩니다. 나는 지금까지 도움이되는 것없이 다른 게시물을 많이 읽었습니다. 이것이 내가 확인할 수있는 것입니다 :IPN 알림 Verification INVALID
- params의 순서는 같습니다.
- 데이터는 요청시 앞에
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로 시뮬레이터의 인코딩을 보거나 변경할 수 있습니까?
PayPal (https://www.paypal-techsupport.com/)에서 문제를보고 할 수 있습니다. 내 경험에 비추어 볼 때, IPN 시뮬레이터는 IPN 데이터의 호환되지 않는 인코딩으로 인해 문제를 일으켰습니다. – vandershraaf