2015-11-30 4 views
1

Je valident une demande PayPal reçue dans une page ASP en le plaçant de nouveau à PayPal avec la méthode suivante:validation PayPal échoue pour certains noms d'utilisateur

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"; 
    } 

Ce code a fonctionné parfaitement pendant les deux dernières années, jusqu'à ce que je reçu une paiement d'un utilisateur avec le nom Ramón Martín. Voici comment son nom est connecté de la IPN:

last_name = Martn & prenom = Ramn

La méthode ci-dessus fonctionne bien avec des noms chinois, japonais et russe. Des idées comment le réparer pour le cas actuel?

Répondre

0

Le problème était que l'encodage par défaut pour les boutons PayPal était windows-1252. Il doit être changé en UTF-8.

Vous pouvez le faire BOF papal -> Mon profil -> Mes outils de vente -> Langue bouton PayPal encodage -> Plus d'options -> UTF-8

enter image description here


enter image description here


enter image description here

0

Avez-vous essayé de changer le format de codage en Windows-1252? Dans votre code, vous l'avez mis en UTF-8 et le nom donné, je peux voir le Ó et le í. Essayez d'utiliser l'encodage windows-1252 et voyez si cela vous donne un autre soulagement.