На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование под PalmOS"
Правила раздела просты:
1. Будьте вежливыми.
2. Задавате вопросы только по теме. Пользовательские вопросы (у меня не работает пальм) являются оффтопиком. Пользуйтесь конференциями palmz.in, hpc.ru, ihand.ru .
3. Поиск вареза запрещен.
4. Пользуйтесь поиском. Не надейтесь, что кому-то доставляет удовольствие отвечать в сотый раз на один и тот же вопрос.
  
> Динамическая регистрация у Handango , не проходит проверка подлинности
    Как известно, на сайте Handango есть возможность отдавать серийные номера к программам через HTTP-запрос к вашему серверу. При этом для подтверждения подлинности данных, отправляемых с Handango, они подписывают запрос своей электронной подписью. У меня уже второй раз возникает ситуация, когда подпись не проходит проверку. Однако с Handango, как обычно, приходят письма, подтверждающие, что оплата была произведена. Кто-нибудь сталкивался с подобной ситуацией?
    Поясню, что проверка подписи у меня не онлайновая. Т.е. сервер всегда отдаёт серийник, даже если проверка не прошла. Не смотря на это, такая проверка позволила мне обнаружить у себя ошибку в сервисе регистрации. Вот сейчас снова вылезли две ошибки в подписи, причину которых не могу определить. Жалоб от этих покупателей не было.
    P.S. Проверку подписи провожу java-кодом, который взят с сайта Handango.
      А кто-нибудь вообще использует регистрацию на Handango через HTTP с проверкой электронной подписи? Если у вас всё работает нормально, отпишитесь здесь, пожалуйста. Это тоже будет для меня дополнительной полезной информацией.
        мы используем, но без подписи. и рпн используем. а саппорт ханданги что говорит?
          Я им не писал, поскольку ситуация очень странная. В большинстве случаев подпись правильная. Может сервер как-то перекодирует пришедшие POST-параметры. В первом случае так и оказалось. Сервер заменял символ апострофа ' на \'. Может и здесь что-то подобное.
            Ну если ' заменяется на \', то вполне вероятно что они передают заэскейпеную под SQL строку, а там ещё и другие символы скорее всего эскейпятся.
              Эту замену делал сервер, на котором у меня крутится скрипт регистрации. Он написан на PHP, а в конфигурации сервера включена переменная magic_quotes_gpc. Из-за этого и происходила замена. Но в том случае была видна разница между данными, на которые я сгенерировал серийник, и в подтверждающем письме из Handango. Сейчас же все данные совпадают, а подпись неправильная.
              P.S. Интересно, что когда обнаружилась проблема с magic_quotes_gpc, я написал человеку, получившему неверный серийник. Но он так и не ответил.
                Небольшое дополнение.
                Проверять подпись нужно в той кодировке, в какой подписывает Handango. В большинстве случаев это не имеет значения, т.к. обычно все поля заполняются латинскими буквами. Но вот вчерась один чех написал свое имя по чешски. Handango его, естественно, искаверкало, как смогло. И подписало. В результате проверка прошла только при принудительном указании кодировки ISO8859-1. В моем варианте это выглядело так (данные читаю из лог-файла):

                ExpandedWrap disabled
                  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();
                      ...
                  }


                Сообщения были разделены в тему "Флуд"
                  :fool:
                    :wacko:
                      :wacko:
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,3365 ]   [ 15 queries used ]   [ Generated: 9.11.24, 00:35 GMT ]