某些用户名的 PayPal 验证失败
PayPal validation fails for some usernames
我通过使用以下方法将 ASP 网页发回 PayPal 来验证在 ASP 网页中收到的 PayPal 请求:
public bool ValidateRequest(HttpRequest request)
{
var sb = new StringBuilder();
sb.Append("cmd=_notify-validate");
foreach (string paramName in request.Form)
{
var paramValue = UrlEncode(request.Form[paramName]);
sb.AppendFormat("&{0}={1}", paramName, paramValue);
}
var parameters = sb.ToString();
var data = Encoding.UTF8.GetBytes(parameters);
var webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
var uploadData = webClient.UploadData(validatingUrl, "POST", data);
var message = Encoding.UTF8.GetString(uploadData);
return message == "VERIFIED";
}
这段代码在过去两年中一直运行良好,直到我收到了一位名叫 Ramón Martín 的用户的付款。这是从 IPN 记录他的名字的方式:
last_name=Mart�n&first_name=Ram�n
上述方法适用于中文、日文和俄文名称。有什么想法可以解决当前的问题吗?
您是否尝试过将编码格式更改为windows-1252?在您的代码中,您已将其设置为 UTF-8,并且我可以看到 Ó 和 í 的名称。尝试使用 windows-1252 编码,看看它是否能给你另一种解脱。
问题是 PayPal 按钮的默认编码是 windows-1252。
必须改成UTF-8.
您可以从 PaPal -> 我的资料 -> 我的销售工具 -> PayPal 按钮语言编码 -> 更多选项 -> UTF-8
我通过使用以下方法将 ASP 网页发回 PayPal 来验证在 ASP 网页中收到的 PayPal 请求:
public bool ValidateRequest(HttpRequest request)
{
var sb = new StringBuilder();
sb.Append("cmd=_notify-validate");
foreach (string paramName in request.Form)
{
var paramValue = UrlEncode(request.Form[paramName]);
sb.AppendFormat("&{0}={1}", paramName, paramValue);
}
var parameters = sb.ToString();
var data = Encoding.UTF8.GetBytes(parameters);
var webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
var uploadData = webClient.UploadData(validatingUrl, "POST", data);
var message = Encoding.UTF8.GetString(uploadData);
return message == "VERIFIED";
}
这段代码在过去两年中一直运行良好,直到我收到了一位名叫 Ramón Martín 的用户的付款。这是从 IPN 记录他的名字的方式:
last_name=Mart�n&first_name=Ram�n
上述方法适用于中文、日文和俄文名称。有什么想法可以解决当前的问题吗?
您是否尝试过将编码格式更改为windows-1252?在您的代码中,您已将其设置为 UTF-8,并且我可以看到 Ó 和 í 的名称。尝试使用 windows-1252 编码,看看它是否能给你另一种解脱。
问题是 PayPal 按钮的默认编码是 windows-1252。 必须改成UTF-8.
您可以从 PaPal -> 我的资料 -> 我的销售工具 -> PayPal 按钮语言编码 -> 更多选项 -> UTF-8