C# 某些用户名的PayPal验证失败
我通过使用以下方法将ASP网页中收到的PayPal请求发回PayPal来验证该请求:C# 某些用户名的PayPal验证失败,c#,.net,utf-8,paypal-ipn,asp.net-webpages,C#,.net,Utf 8,Paypal Ipn,Asp.net Webpages,我通过使用以下方法将ASP网页中收到的PayPal请求发回PayPal来验证该请求: public bool ValidateRequest(HttpRequest request) { var sb = new StringBuilder(); sb.Append("cmd=_notify-validate"); foreach (string paramName in request.Form) {
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编码,看看它是否能给您带来另一种解脱。您是否尝试将编码格式更改为windows-1252?在您的代码中,您已将其设置为UTF-8,我可以看到Ó和í的名称。尝试使用windows-1252编码,看看它是否能给您带来另一种解脱。问题是PayPal按钮的默认编码是windows-1252。 必须将其更改为UTF-8 你可以通过教皇->我的个人资料->我的销售工具->贝宝按钮语言编码->更多选项->UTF-8来完成
问题在于贝宝按钮的默认编码是windows-1252。 必须将其更改为UTF-8 你可以通过教皇->我的个人资料->我的销售工具->贝宝按钮语言编码->更多选项->UTF-8来完成