Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.113.145] |
|
Сообщ.
#1
,
|
|
|
Как известно, на сайте Handango есть возможность отдавать серийные номера к программам через HTTP-запрос к вашему серверу. При этом для подтверждения подлинности данных, отправляемых с Handango, они подписывают запрос своей электронной подписью. У меня уже второй раз возникает ситуация, когда подпись не проходит проверку. Однако с Handango, как обычно, приходят письма, подтверждающие, что оплата была произведена. Кто-нибудь сталкивался с подобной ситуацией?
Поясню, что проверка подписи у меня не онлайновая. Т.е. сервер всегда отдаёт серийник, даже если проверка не прошла. Не смотря на это, такая проверка позволила мне обнаружить у себя ошибку в сервисе регистрации. Вот сейчас снова вылезли две ошибки в подписи, причину которых не могу определить. Жалоб от этих покупателей не было. P.S. Проверку подписи провожу java-кодом, который взят с сайта Handango. |
Сообщ.
#2
,
|
|
|
А кто-нибудь вообще использует регистрацию на Handango через HTTP с проверкой электронной подписи? Если у вас всё работает нормально, отпишитесь здесь, пожалуйста. Это тоже будет для меня дополнительной полезной информацией.
|
Сообщ.
#3
,
|
|
|
мы используем, но без подписи. и рпн используем. а саппорт ханданги что говорит?
|
Сообщ.
#4
,
|
|
|
Я им не писал, поскольку ситуация очень странная. В большинстве случаев подпись правильная. Может сервер как-то перекодирует пришедшие POST-параметры. В первом случае так и оказалось. Сервер заменял символ апострофа ' на \'. Может и здесь что-то подобное.
|
Сообщ.
#5
,
|
|
|
Ну если ' заменяется на \', то вполне вероятно что они передают заэскейпеную под SQL строку, а там ещё и другие символы скорее всего эскейпятся.
|
Сообщ.
#6
,
|
|
|
Эту замену делал сервер, на котором у меня крутится скрипт регистрации. Он написан на PHP, а в конфигурации сервера включена переменная magic_quotes_gpc. Из-за этого и происходила замена. Но в том случае была видна разница между данными, на которые я сгенерировал серийник, и в подтверждающем письме из Handango. Сейчас же все данные совпадают, а подпись неправильная.
P.S. Интересно, что когда обнаружилась проблема с magic_quotes_gpc, я написал человеку, получившему неверный серийник. Но он так и не ответил. |
Сообщ.
#7
,
|
|
|
Небольшое дополнение.
Проверять подпись нужно в той кодировке, в какой подписывает Handango. В большинстве случаев это не имеет значения, т.к. обычно все поля заполняются латинскими буквами. Но вот вчерась один чех написал свое имя по чешски. Handango его, естественно, искаверкало, как смогло. И подписало. В результате проверка прошла только при принудительном указании кодировки ISO8859-1. В моем варианте это выглядело так (данные читаю из лог-файла): InputStreamReader isr = new InputStreamReader(new FileInputStream(inputFileName), "ISO8859_1"); //System.out.println(isr.getEncoding()); BufferedReader in = new BufferedReader(isr); while (in.ready()) { String str = in.readLine(); ... } Сообщения были разделены в тему "Флуд" |
Сообщ.
#8
,
|
|
|
|
Сообщ.
#9
,
|
|
|
|
Сообщ.
#10
,
|
|
|
|