vas*_*123 21 php paypal utf-8 character-encoding paypal-ipn
我有这个paypal IPN的问题.我看到,很多人都有.
我尝试以用户身份付费:ÁrvíztűrőTükörfúrógép在这个名字中,有所有特殊字符,匈牙利ABC中有什么.
我是匈牙利的PHP开发人员.
好吧,我试图在谷歌搜索很多.首先要检查paypal语言设置:http: //jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html
每个设置都是UTF-8.
当paypal调用我的通知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";
}
Run Code Online (Sandbox Code Playgroud)
}
这是有趣的事情.我找回了一个完全商品化的用户名.所以我通过char转储char.
名字将是:CHARS:193,114,118,237,122,116,26,114,26
吸.我尝试了一切以获得我真正的utf-8名称mb_detect_encoding是UTF-8.
我尝试使用iconv,mb_convert_encoding,utf8_encode和decode.没有成功.试图不urlencode名称,再没有成功.
有人可以告诉我,为什么会这样,我怎样才能找回真正的utf8名字?
该URL我送:CMD = _notify,验证和mc_gross = 10.00 protection_eligibility =合格&address_status =证实与payer_id = JA3YMCJFKSCNJ&税= 0.00&address_street = 1 +主+ ST&PAYMENT_DATE = 07%3A41%3A40 +月+ 05%2C + 2012 + PDT,PAYMENT_STATUS =完成*&的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%远%F3G%E9P¬ify_version = 3.6&定制= lolka_bolka%3Bfalse% 3B%3B%3B%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%远%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 +丝绸mc_currency = USD&ITEM_NUMBER =&residence_country = US&吨 est_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及运送= 0.00&ipn_track_id = 6fe12a7a34b74
Len*_*art 45
您应该在Paypal更改您的设置.

Lenart 的回答很棒而且非常有用,但我想我会添加一些不适合评论的内容。
charset一下:在您的网站上,在您的订单中(例如:通过隐藏输入)设置 是不够的,您还需要设置您的默认编码- 如 Lenart 的回答中所述。
UTF-8在订单上有一个隐藏的输入,但 PayPal IPN 仍然在windows-1252. 您只能通过更改 PayPal 帐户中的默认设置来解决此问题。charsetPOST 消息中的值在您的 IPN 处理脚本中进行。Western European Languages (including English)会导致法语重音字符不起作用。UTF-8在 IPN 中显示。)§
编辑。最后但并非最不重要的:
如果您想用特殊字符或重音字符测试您的 IPN 处理脚本,您(理论上)有几个不同的选项,但大多数在实践中不起作用。
这是一个回顾:
Only enter letters(原文如此)。Something went wrong. One or more sandbox accounts could not be uploaded. Try again.我几个月前向 PayPal 报告了这个问题,但没有任何改变。
§
与 PayPal 合作并不有趣,而且是在浪费时间。我希望这会帮助你节省一些时间。如果可以,将您的业务转移到其他地方。
| 归档时间: |
|
| 查看次数: |
7571 次 |
| 最近记录: |