Я пытаюсь исправить свою страницу автоматического возврата, чтобы создать лицензию на основе имени для некоторого программного обеспечения. У меня работает PDT, и он возвращает мне данные. Однако информация об имени была преобразована в кодировку, отличную от Unicode, и уничтожена.
Мои тестовые данные - это пользователь в песочнице с японским именем. Я пытаюсь запустить транзакцию от имени этого пользователя и вернуть это:
last_name=%1A%1A
first_name=%1A%1A
В ответе PDT. По иронии судьбы PayPal сообщает о типе контента как utf-8:
Content-Type: text/html; charset=UTF-8
Ага, нет. Имя тестового пользователя на самом деле: 木 家 寿司. Просто несколько случайных японских иероглифов.
Мой HTTP-запрос в основном:
if ($method == "POST")
$r = "POST $usepath HTTP/1.1\r\n";
else
$r = "GET $usepath HTTP/1.1\r\n";
$r .= "Host: $host\r\n" .
"User-Agent: $ua\r\n" .
"Connection: close\r\n" .
"Accept-Charset: utf-8\r\n" .
"Accept: */*\r\n" .
"Accept: image/gif\r\n" .
"Accept: image/x-xbitmap\r\n" .
"Accept: image/jpeg\r\n";
if ($method == "POST")
{
$strlength = strlen($postdata);
$r .= "Content-type: application/x-www-form-urlencoded\r\n" .
"Content-length: $strlength\r\n".
"\r\n" .
$postdata;
}
Следует отметить, что я установил для Accept-Charset значение utf-8. Я также попытался установить тип содержимого, чтобы включить utf-8 в качестве кодировки. А также указать "charset = utf-8" в самих полях формы.
Похоже, что PDT просто не работает, когда дело доходит до Unicode. Или я тут что-то не так делаю?
Изменить: Да, это решается здесь.
1 ответ
Поскольку я не могу закрыть это как дубликат, я отправлю фактический ответ для потомков.
В вашем профиле PayPal в разделе «Мои инструменты продаж» есть
Они должны по умолчанию использовать utf-8. Они также должны соблюдать кодировку ввода. Им нужно много чего делать ... но они PayPal.
Похожие вопросы
Связанные вопросы
Новые вопросы
paypal
По вопросам API PayPal, используемым разработчиками программного обеспечения для обработки платежей, управления счетами, контроля учетных записей и т. Д. (Для получения поддержки на уровне пользователей обратитесь непосредственно в PayPal через свой сайт.)