Paypal-IPN-charset überschreiben

ich habe ein problem mit dem paypal IPN.
Ich sah eine Menge Leute hatte.

Ich versuche zu bezahlen, als Benutzer: Árvíztűrő Tükörfúrógép
In diesem Namen, es gibt alle besonderen chars, welche in der ungarischen ABC.

Ich bin eine Ungarische PHP-Entwickler.

Ok, ich habe versucht zu suchen, eine Menge bei google.
Die erste Sache war, überprüfen Sie die paypal-Sprache-Einstellungen:
http://jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html

Alle Einstellungen sind UTF-8.

Wenn paypal rief meine notify url, ich (früheren Entwickler) bauen Sie die Anfrage-URL ein.
Wenn ich angemeldet diese url, sah ich, das charset wurde nicht UTF-8, so dass ich gezwungen das script zu nutzen.

$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
   if ($key == 'charset') {
      $req .= "&charset=utf-8";
   } else {
      $value = urlencode(stripslashes($value));
      $req .= "&$key=$value";
   }

}

Und hier ist die interessante Sache. Ich wieder Total mallformed Benutzername.
Also ich dump es von char zu char.

Den ersten Namen:
CHARS: 193, 114, 118, 237, 122, 116, 26, 114, 26

Saugen.
Ich versuchte alles, um meinen echten utf-8-Namen
Die mb_detect_encoding ist UTF-8 für ihn.

Habe ich versucht zu verwenden, iconv, mb_convert_encoding, utf8_encode und decodieren.
Kein Erfolg. Versucht nicht urlencode name, kein Erfolg, wieder.

Kann jemand mir sagen, warum ist es, und wie kann ich den real utf8 Namen?

Die URL das, was ich gesendet:
cmd=_notify-validate&mc_gross=10.00&protection_eligibility=Eligible&address_status=confirmed&payer_id=JA3YMCJFKSCNJ&tax=0.00&address_street=1+Main+St&payment_date=07%3A41%3A40+Sep+05%2C+2012+PDT&payment_status=Completed*&charset=utf-8*&address_zip=95131&first_name=%C1rv%EDzt%1Ar%1A&mc_fee=0.59&address_country_code=US&address_name=%C1rv%EDzt%1Ar%1A+T%FCk%F6rf%FAr%F3g%E9p&notify_version=3.6&custom=lolka_bolka%3Bfalse%3B%3B%3B%3BHungary%3B%3B%3B%3B%3B%3B&payer_status=verified&business=vaso_1346830963_biz%40mydomain.hu&address_country=United+States&address_city=San+Jose&quantity=1&verify_sign=AVVJjJNeVwHbYcMDVfj2N1DqWwUdAtNQipb9kip99gz2py-LPoOYzSCc&payer_email=test_1346830232_per%40mydomain.hu&txn_id=4J747779YW528551F&payment_type=instant&last_name=T%FCk%F6rf%FAr%F3g%E9p&address_state=CA&receiver_email=vaso_1346830963_biz%40mydomain.hu&payment_fee=0.59&receiver_id=TGEHBCMG336WE&txn_type=web_accept&item_name=510+Silk&mc_currency=USD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00&transaction_subject=lolka_bolka%3Bfalse%3B%3B%3B%3BHungary%3B%3B%3B%3B%3B%3B&payment_gross=10.00&shipping=0.00&ipn_track_id=6fe12a7a34b74

  • Ist UTF-8 aktiviert, die in Ihrem PayPal-Profil? Siehe shwup.blogspot.sg/2009/05/paypal-ipn-issues-with-unicode.html
  • dies war meine erste Sache: "Ok, ich habe versucht zu suchen, eine Menge bei google. Die erste Sache war, überprüfen Sie die paypal-Sprache-Einstellungen: jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html"
  • ok, jetzt, wenn ich meine url, erkannte, schickte ich eine schlechte Vorname: Vorname=%C1rv%EDzt%1Ar%1A, wo űő sind die gleichen, %1A. So, jetzt werde ich versuchen, urlencode char durch char-Namen.
  • Ok, ich denke, dass ich das problem gefunden. Ich überall UTF-8, aber es spielt keine Rolle, bacause ich kann nicht gesetzt werden im SANDBOX-Modus.
  • Eine andere Sache, die ich verwenden http_build_query($_POST) statt foreach Zyklus und es Nähte zu handhaben ist es gut. Hatte nie Probleme wie diese.
InformationsquelleAutor vaso123 | 2012-09-05
Schreibe einen Kommentar