gpt4 book ai didi

paypal - IPN 通知验证无效

转载 作者:太空宇宙 更新时间:2023-11-03 16:24:29 29 4
gpt4 key购买 nike

在发回数据以验证数据是否来自 PayPal 时,我不断收到来自 PayPal 的 INVALID 响应。到目前为止,我已经阅读了很多关于 SO 的其他帖子,但没有任何帮助。这是我可以验证的:

  1. 参数的顺序相同。
  2. 数据是相同的,除了我在请求前添加了 cmd=_notify-validate&

这是一些用于发布数据的快速 hacky 代码:

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 是传送到我的 Action 的数据(使用 MVC)。我通过查看 Request.Form.ToString() 数据验证了这是正确的。

我试过使用其他几种方法发帖,但得到的都是相同的 INVALID 结果。

我读过关于将 paypal 首选项中的语言编码更改为 UTF-8 但我使用的是 IPN 模拟器,所以不确定这将如何应用。

我似乎在兜圈子,不知道该怎么办。

编辑我刚刚通过进入 IPN 历史记录并重新发送一个,从我的沙盒 Paypal 帐户中尝试了这一点,它工作正常。我收到已验证的状态。

这意味着只是 IPN 模拟器无法正常工作,因此我认为这与编码有关。是否可以查看/更改模拟器的编码为 UTF-8?

最佳答案

我遇到了同样的问题。这似乎是模拟器的错误。

尝试清除模拟器中的所有日期字段,使它们为空。似乎是表单中的某些特殊字符导致了问题。

这只是 IPN 模拟器中的一个错误,真实的 IPN 消息不会受到同样的影响。

关于paypal - IPN 通知验证无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38305906/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com