paypal을 지불 옵션으로 사용하는 온라인 거래가있는 웹 사이트가 있습니다. 체크 아웃 및 페이팔 측의 장바구니 계산이 작동하지만 페이팔 샌드 박스에서 IPN 메시지를받지 못합니다. 로그를 작성한 후에 formdata이 null이라는 것을 알았습니다. IPN 히스토리를 확인해도 IPN 메시지의 상태가 다시 시도 중임을 나타냅니다 ... IPN 알림 URL도 설정되었습니다. 다음은 수신기 코드입니다.Paypal : IPN 리스너가 IPN 메시지를받지 못합니다.
[Route("IPN")]
public IHttpActionResult IPN(FormDataCollection formData)
{
var formVals = new Dictionary<string, string>();
formVals.Add("cmd", "_notify-validate");
string response = GetPayPalResponse(formVals, formData);
if (response.ToUpper().Trim() == "VERIFIED")
{
//entry into database
}
else
{
return InternalServerError();
}
return InternalServerError();
}
string GetPayPalResponse(Dictionary<string, string> formVals, FormDataCollection formData)
{
string paypalUrl = GetPayPalURL();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(paypalUrl);
// Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
Encoding encoding = Encoding.UTF8;
StringBuilder sb = new StringBuilder();
foreach (var entry in formData.ToList())
{
sb.AppendFormat("{0}={1}&", entry.Key, encoding.GetString(encoding.GetBytes(entry.Value)));
}
string strRequest = sb.ToString();
strRequest += "cmd=_notify-validate";
req.ContentLength = strRequest.Length;
//Send the request to PayPal and get the response
StreamWriter streamOut = new StreamWriter(req.GetRequestStream());
streamOut.Write(strRequest);
streamOut.Close();
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();
return strResponse;
}
이것은 이전에는 작동했지만 멈추지 않았다. 페이팔 지불 게이트웨이에 새로운 것이므로, 도움을 주시면 감사하겠습니다.
누구나이 작업을 수행 했습니까? –