Кодировка переопределения IP-адреса Paypal


У меня проблема с этим IP-адресом PayPal. Я видел, как это делали многие люди.

Я пытаюсь заплатить как пользователь: ÁrvíztűRő Tükörfúrógép В этом имени есть все специальные символы, которые есть в венгерской азбуке.

Я венгерский разработчик 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";
   }

}

И вот что самое интересное. Я получаю обратно полностью сформированное имя пользователя. Поэтому я сбрасываю его по частям.

Первое имя будет: СИМВОЛЫ: 193, 114, 118, 237, 122, 116, 26, 114, 26

Отстой. Я сделал все возможное, чтобы получить свое настоящее имя utf-8 Кодирование mb_detect_encoding для него равно UTF-8.

Я пытался использовать iconv, mb_convert_encoding, utf8_encode и декодировать. Безрезультатно. Попытался не кодировать имя URL, снова безуспешно.

Может ли кто-нибудь сказать мне, почему это так и как я могу вернуть настоящее имя utf8?

URL-адрес, который я

Author: vaso123, 2012-09-05

2 answers

Вам следует изменить свои настройки в Paypal.

  • перейдите в свой профиль Paypal
  • нажмите Мои инструменты продаж на боковой панели
  • прокрутите страницу вниз и нажмите Кодировка языка кнопки PayPal
  • нажмите Дополнительные параметры и установите кодировку UTF-8

End page

 36
Author: Lenart, 2014-05-11 13:16:45

Ответ Ленарта отличный и очень полезный, но я подумал, что добавлю несколько вещей, которые не поместятся в комментарии.

  • Для уточнения: установки charset на вашем сайте в форме заказа (например, с помощью скрытого ввода) НЕДОСТАТОЧНО, вам также необходимо установить кодировку по умолчанию – как объяснено в ответе Ленарта.
    • Это связано с тем, что этот параметр применяется только к вашим собственным данным, в то время как настройка по умолчанию применяется к данным, отправленным PayPal на ваш IP-адрес-обработка сценарий.
    • например: возможно, у вас есть UTF-8 в качестве скрытого ввода в форме заказа, но IP-адреса PayPal все еще находятся в windows-1252. Вы можете исправить это, только изменив настройки по умолчанию в своей учетной записи PayPal.
  • В целях тестирования вы также захотите установить эту опцию кодирования для своего торгового аккаунта в песочнице! (Просто войдите в систему https://sandbox.paypal.com с вашими данными продавца в песочнице.)
  • После установки кодировки по умолчанию, если вы вернетесь к чтобы снова проверить значение параметра, он покажет значение по умолчанию вместо заданного вами значения. Это ошибка (и иллюстрирует качество работы PayPal), и значение, которое вы установили ранее, на самом деле все еще установлено.
    • Поэтому, если вы хотите убедиться, какова кодировка на самом деле, сделайте это в своем сценарии обработки IPN, проверив значение charset в сообщении POST.
  • Кодировка по умолчанию, используемая PayPal, не работает должным образом.
    • например: Western European Languages (including English) приведет к тому, что символы с французским акцентом не будут работать.
    • Вам лучше везде использовать UTF8 (будет отображаться как UTF-8 в IPN.)

§

РЕДАКТИРОВАТЬ. И последнее, но не менее важное:

Если вы хотите протестировать свой сценарий обработки IPN со специальными или акцентированными символами, у вас есть (теоретически) несколько различных вариантов, но большинство из них не работают на практике.

Вот краткое изложение:

  • Используя Симулятор IPN не будет работать, так как он не может подтвердить запрос (он выдает поддельные запросы, а не реальные.)
  • Создание учетной записи клиента PayPal в песочнице со специальными символами внутри имени или фамилии, к сожалению, невозможно.
    • Пользовательский интерфейс не поддерживает его и попросит вас Only enter letters (sic).
    • Функция массовой загрузки учетной записи не лучше, в результате чего Something went wrong. One or more sandbox accounts could not be uploaded. Try again.
  • Единственный вариант, который работает: тест ваш сайт с изолированным сервером PayPal и выберите оплату без учетной записи PayPal.
    • Таким образом, вы сможете вводить акцентированные/специальные символы для имени и фамилии.
    • (Вы получите номер кредитной карты, тип и дату истечения срока действия из "Учетных записей разработчиков/песочницы " ваш счет клиента" Профиль" Финансирование – для значения CVV подойдет любое число.)

Я сообщил об этой проблеме PayPal несколько месяцев назад, но ничего не изменилось.

§

Работа с PayPal - это не весело и большая трата времени. Я надеюсь, что это поможет вам сэкономить немного времени. Займитесь своим бизнесом в другом месте, если сможете.

 2
Author: Fabien Snauwaert, 2017-09-19 15:06:44