我对此 Paypal IPN有问题。
我看到,很多人都有。

我尝试以用户身份付款:ÁrvíztűrőTükörfúrógép
用这个名字,所有特殊字符,匈牙利ABC中都有。

我是匈牙利的PHP开发人员。

好的,我尝试在Google上搜索很多内容。
第一件事是检查 Paypal 语言设置:
http://jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html

每种设置均为UTF-8。

当 Paypal 调用我的通知URL时,我(以前的开发人员)构建了请求URL。
当我登录此URL时,我看到字符集不是UTF-8,因此我强制脚本使用该字符集。

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

}

这是有趣的事情。我找回了一个完整的用户名。
因此,我逐个字符地将其丢弃。

名字将是:
CHARS:193、114、118、237、122、116、26、114、26


我竭尽所能获得我的真实utf-8名称
mb_detect_encoding是UTF-8。

我尝试使用iconv,mb_convert_encoding,utf8_encode和解码。
没有成功尝试不对名称进行urlencode,再次失败。

有人可以告诉我,为什么,我怎么找回真正的utf8名称?

我发送的网址:
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&ed_stat = * 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%3%B 3BHungary%3B%3B%3B%3B%3B%3B&payer_status =验证的&商务= vaso_1346830963_biz%40mydomain.hu&ADDRESS_COUNTRY =美+国&ADDRESS_CITY =圣+圣何塞和数量= 1&verify_sign = AVVJjJNeVwHbYcMDVfj2N1DqWwUdAtNQIpb9KIP99gZ2PY-LPoOYzSCc&PAYER_EMAIL = test_1346830232_per%40mydomain.hu&txn_id = 4J747779YW528551F&payment_type =即时与姓氏= 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_count == && identity = us&identm nt = 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

最佳答案

您应该在Paypal上更改设置。

  • 转到您的Paypal profile
  • 单击我在侧边栏中的销售工具
  • 滚动到底部,然后单击PayPal button language encoding
  • 单击更多选项并将编码设置为UTF-8
  • 08-16 13:40