tôi gặp sự cố với IPN trả tiền này. Tôi thấy, rất nhiều người đã có.Paypal IPN ghi đè bộ ký tự
Tôi cố gắng thanh toán với tư cách người dùng: Árvíztűrő Tükörfúrógép Trong tên này, có tất cả các ký tự đặc biệt, có gì trong hungarian ABC.
Tôi là nhà phát triển PHP hungarian.
Ok, tôi đã cố gắng tìm kiếm rất nhiều trên google. Điều đầu tiên là kiểm tra cài đặt ngôn ngữ paypal: http://jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html
Mọi cài đặt đều là UTF-8.
Khi paypal gọi là url thông báo của tôi, tôi (nhà phát triển trước đó) xây dựng URL yêu cầu. Khi tôi đăng nhập url này, tôi thấy, bộ ký tự không phải là UTF-8, vì vậy tôi buộc kịch bản phải sử dụng nó.
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
if ($key == 'charset') {
$req .= "&charset=utf-8";
} else {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
}
Và đây là điều intresting. Tôi lấy lại một tên người dùng hoàn chỉnh. Vì vậy, tôi đổ nó char char.
Tên đầu tiên sẽ là: CHARS: 193, 114, 118, 237, 122, 116, 26, 114, 26
Suck. Tôi đã cố gắng tìm mọi thứ để có được tên utf-8 thật của mình Mã mb_detect_encoding là UTF-8 cho nó.
Tôi đã cố gắng sử dụng biểu tượng, mb_convert_encoding, utf8_encode và giải mã. Không thành công. Cố gắng không urlencode tên, không thành công một lần nữa.
Ai đó có thể cho tôi biết, tại sao nó lại và làm thế nào tôi có thể lấy lại tên utf8 thật?
URL gì tôi gửi: cmd = _notify-xác nhận & mc_gross = 10.00 & protection_eligibility = đủ điều kiện & address_status = khẳng định & payer_id = JA3YMCJFKSCNJ & thuế = 0.00 & address_street = 1 + Main + St & PAYMENT_DATE = 07% 3A41 % 3A40 + Tháng Chín + 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 & tùy chỉnh = lolka_bolka% 3Bfalse% 3B% 3B% 3B% 3BHungary% 3B% 3B% 3B% 3B% 3B% 3B & payer_status = xác & kinh doanh = vaso_1346830963_biz% 40mydomain.hu & address_country = Hoa + Hoa & address_city = San Jose + & lượng = 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 & receive_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 & vận chuyển = 0.00 & ipn_track_id = 6fe12a7a34b74
UTF-8 có được bật trong hồ sơ PayPal của bạn không? Xem http://shwup.blogspot.sg/2009/05/paypal-ipn-issues-with-unicode.html –
@jack: đây là điều đầu tiên của tôi: "Ok, tôi đã cố gắng tìm kiếm rất nhiều trên google Điều đầu tiên là kiểm tra cài đặt ngôn ngữ paypal: http://jlchereau.blogspot.hu/2006/10/paypal-ipn-with-utf8.html " – vaso123
ok, bây giờ, khi tôi kiểm tra url của tôi, nhận ra, tôi đã gửi một tên xấu: first_name =% C1rv% EDzt% 1Ar% 1A trong đó űő giống nhau,% 1A. Vì vậy, bây giờ tôi sẽ cố gắng để urlencode char bằng char tên. – vaso123