forum.bitel.ru
http://forum.bitel.ru/

bisys как правильно прописать параметр секрета?
http://forum.bitel.ru/viewtopic.php?f=18&t=10723
Страница 1 из 2

Автор:  skyb [ 21 июл 2015, 12:22 ]
Заголовок сообщения:  bisys как правильно прописать параметр секрета?

mps.10.secret=
как сюда должно скаладываться? дело в том что я захешировал в md5 - на той стороне говорят что не прошло

Автор:  skyb [ 21 июл 2015, 12:31 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

вот протокол

Вложения:
prot_oper (1).zip [131.51 КБ]
Скачиваний: 272

Автор:  Phricker [ 21 июл 2015, 12:34 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Цитата:
Дмитрий М <блабла@bisys.ru>
Прикрепленные файлы28.11.13

кому: мне
Все работает.

Вы должны передать нам боевой пароль для дальнейшей работы.
Передать надо в шифрованном виде. Высылаю программу ptrsa для шифрования пароля.
Программа для ОС Windows XP и младше. На Windows 7 может сработать не с первого раза.
Инструкция:
В Options в Public key выберите кнопкой наш ключ bisys-ptrsa-public.pem
придумайте пароль символов 40 - 50, типа sOCIacR+5EQ-2E0/BiM&Atoe... (без русских букв)

Без MD5. Просто пароль.

Автор:  skyb [ 21 июл 2015, 13:19 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Цитата:
Теперь в ответе приходит неверная подпись.

В ответе в параметре <sign> должен был быть указан хэш строки, составленной из содержимого тега params и подписи полученного ранее запроса + пароль, то есть следующей строки:
<err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>11824</account><balance>210.99</balance>75e33785177fc3de145f2ca3386c1d9btest1234

Когда подпись полученного ответа не сходится, мы считаем ответ ошибочным.

это я настроил без хеша, то что они ответили - выше

Автор:  skyb [ 21 июл 2015, 17:26 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Phricker писал(а):
Цитата:
Дмитрий М <блабла@bisys.ru>
Прикрепленные файлы28.11.13

кому: мне
Все работает.

Вы должны передать нам боевой пароль для дальнейшей работы.
Передать надо в шифрованном виде. Высылаю программу ptrsa для шифрования пароля.
Программа для ОС Windows XP и младше. На Windows 7 может сработать не с первого раза.
Инструкция:
В Options в Public key выберите кнопкой наш ключ bisys-ptrsa-public.pem
придумайте пароль символов 40 - 50, типа sOCIacR+5EQ-2E0/BiM&Atoe... (без русских букв)

Без MD5. Просто пароль.

а дай конфиг плиз

Автор:  skyb [ 22 июл 2015, 07:06 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

ап, что не так то, вроде все настроено а не работает?

Автор:  Phricker [ 22 июл 2015, 12:03 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
а дай конфиг плиз

Код:
#bisys
#
mps.8.mode=1
mps.8.title=Сбербанк
mps.8.protocol=bisys
mps.8.protocol.ext=noBaseAuth
mps.8.secret=+,{0?.......veC
mps.8.pid=33
mps.8.search.mode=custom
mps.8.search.custom=ru.ellcom.bgbilling.modules.mps.CustomFindContract
mps.8.numberPattern=\A[a-zA-Z0-9_-]*\z
mps.8.comment=

Автор:  Phricker [ 22 июл 2015, 12:05 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Пароль не MD5.
Пароль строка.
Я ее вставил в их программу и отправил им зашифрованный.

Автор:  skyb [ 22 июл 2015, 16:19 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

разработчики, есть мнение что протокол старый, а у них новый, можете проверить?

Автор:  skn [ 22 июл 2015, 16:31 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
разработчики, есть мнение что протокол старый, а у них новый, можете проверить?


проверить как? протокол который вы приложили он: Версия 3.5 Редакция 8 12.09.2013 (это самый новый?)

Автор:  skyb [ 22 июл 2015, 18:00 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skn писал(а):
skyb писал(а):
разработчики, есть мнение что протокол старый, а у них новый, можете проверить?


проверить как? протокол который вы приложили он: Версия 3.5 Редакция 8 12.09.2013 (это самый новый?)

они сказали - да, это последняя правка, я выше отписал как они формируют подпись, вы так же?

Автор:  skn [ 22 июл 2015, 18:26 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

мы формируем подпись так
Код:
      String serializedXml = params.substring( params.indexOf( "<params>" ) + 8, params.indexOf( "</params>" ) );
      String strToSign = serializedXml + system.secret;
      MessageDigest md = MessageDigest.getInstance( "MD5" );
      md.update( strToSign.getBytes( "UTF-8" ) );
      String sign = new String( Utils.bytesToHexString( md.digest() ) ).toLowerCase();
      if ( !sign.equalsIgnoreCase( incomingSign ) )
      {
         throw new MPSException( ERROR_MPS_HASH );
      }

Автор:  skyb [ 23 июл 2015, 11:10 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skn писал(а):
мы формируем подпись так
Код:
      String serializedXml = params.substring( params.indexOf( "<params>" ) + 8, params.indexOf( "</params>" ) );
      String strToSign = serializedXml + system.secret;
      MessageDigest md = MessageDigest.getInstance( "MD5" );
      md.update( strToSign.getBytes( "UTF-8" ) );
      String sign = new String( Utils.bytesToHexString( md.digest() ) ).toLowerCase();
      if ( !sign.equalsIgnoreCase( incomingSign ) )
      {
         throw new MPSException( ERROR_MPS_HASH );
      }

это проверкой правильности подписи при получении запроса со стороны ПС? а нужен код, который формирует подпись для ответа

Автор:  skn [ 23 июл 2015, 17:07 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Код:
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   XMLUtils.serialize( paramsElement, baos, "UTF-8" );
   String serializedXml = baos.toString();
   serializedXml = serializedXml.substring( serializedXml.indexOf( "<params>" ) + 8, serializedXml.indexOf( "</params>" ) );
   String strToSign = serializedXml + response.parameters.get( "sign" ).toString() + system.secret;
   MessageDigest md = MessageDigest.getInstance( "MD5" );
   md.update( strToSign.getBytes( "UTF-8" ) );
   String sign = new String( Utils.bytesToHexString( md.digest() ) ).toLowerCase();
   XMLUtils.createElement( responseElement, "sign" ).setTextContent( sign );

Автор:  skyb [ 23 июл 2015, 19:21 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Просят какая получается строка strToSign до strToSign.getBytes, как ее посмотреть? дебаг покажет?

Автор:  skn [ 23 июл 2015, 21:51 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
Просят какая получается строка strToSign до strToSign.getBytes, как ее посмотреть? дебаг покажет?


да

Автор:  skyb [ 29 июл 2015, 12:47 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Вот что написали мне они

Цитата:
В логе я вижу только наши запросы. Ответов, которые Вы отправляете нет.
Вообще, раз к нам от вас приходит неверная подпись, ошибка должна быть в месте формирования подписи, то есть вот здесь:
String strToSign = serializedXml + response.parameters.get( "sign" ).toString() + system.secret;
MessageDigest md = MessageDigest.getInstance( "MD5" );
md.update( strToSign.getBytes( "UTF-8" ) );
String sign = new String( Utils.bytesToHexString( md.digest() ) ).toLowerCase();
XMLUtils.createElement( responseElement, "sign" ).setTextContent( sign );
Скорей всего хэшируется не та строка. В строке должна быть строчка между <params></params>, подпись из запроса и test1234. Вызывает сомнения:
response.parameters.get( "sign" ).toString()
, т.к. насколько я понимаю, response - это ответ. Надо брать sign из запроса.

Поэтому хотелось бы увидеть, что содержит strToSign до
md.update( strToSign.getBytes( "UTF-8" ) );

strToSign по идее на запрос:
<?xml version="1.0"
encoding="UTF-8"?><request><params><act>1</act><account>PPPoE -
11824</account><pay_amount>10000</pay_amount></params><sign>75e33785ca3386c1d9b</sign></request>

должна выглядеть так:
<err_code>0</err_code><err_text>Договор
найден - оплата
возможна</err_text><account>PPPoE -
11824</account><balance>504.20</balance>75e33785177fcca3386c1d9btest1234

Автор:  skyb [ 29 июл 2015, 12:49 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

а вот лог, где должна быть строчка но ее нет

Код:
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>PPPoE - 11824</account><pay_amount>10000</pay_amount></params><sign>75e3378516c1d9b</sign></request>
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysPaymentManager - Операция проверки платежа - проверка существования договора
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-6] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-6] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>PPPoE - 11824</account><client_name>Иванов</client_name></params><sign>c1cd4bf47c006bc3a8d198f</sign></request>
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-6] BiSysPaymentManager - Операция проверки платежа - проверка существования договора
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-2] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-2] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params> <act>1</act><account>PPPoE - 11824</account><pay_amount>10000</pay_amount> </params><sign>a23dde5658f1eb2c359917</sign></request>
07-29/09:28:35 DEBUG [http-bio-0.0.0.0-8443-exec-2] BiSysPaymentManager - Операция проверки платежа - проверка существования договора
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-5] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-5] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>PPPoE - 11824</account></params></request>
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-1] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-1] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>PPPoE - 11824</account></params><sign>098f6bcd4621e832627b4f6</sign></request>
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-10] BiSysPaymentManager - Получение параметров запроса
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-10] BiSysPaymentManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>PPPoE - 118241</account></params><sign>0ed74d21cb1ac7186806766</sign></request>

Автор:  Artur [ 29 июл 2015, 13:05 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Версия 6.1, значит.
После фразы:
Код:
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-10] BiSysPaymentManager - Полученная xml: ....

Должен вывестись этот же набор параметров, но уже распарсенный - его нет. Если его нет, значит должны быть ошибки - их нет.
Далее, их предположение о response неверно, т.к. они не имеют перед глазами весь код. В данном случае переменная response имеет тип MPSResponse, являющееся составной частью внутреннего API, а не HttpResponce, как можно было предположить.
Из всего делаю вывод, что не хватает информации для полной картины. Для начала укажите используемые версии сервера/модуля, затем нужно обновиться до последнего билда в данной версии биллинга , а затем проводить какие-либо тесты, приводить логи и общаться с bisys.

Также могу предположить, что проблема может скрываться из-за их любви к пробелам. Но это, в данном случае, просто лирическое отступление.

Автор:  skyb [ 29 июл 2015, 13:15 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Artur писал(а):
Версия 6.1, значит.
После фразы:
Код:
07-29/09:28:36 DEBUG [http-bio-0.0.0.0-8443-exec-10] BiSysPaymentManager - Полученная xml: ....

Должен вывестись этот же набор параметров, но уже распарсенный - его нет. Если его нет, значит должны быть ошибки - их нет.
Далее, их предположение о response неверно, т.к. они не имеют перед глазами весь код. В данном случае переменная response имеет тип MPSResponse, являющееся составной частью внутреннего API, а не HttpResponce, как можно было предположить.
Из всего делаю вывод, что не хватает информации для полной картины. Для начала укажите используемые версии сервера/модуля, затем нужно обновиться до последнего билда в данной версии биллинга , а затем проводить какие-либо тесты, приводить логи и общаться с bisys.

Также могу предположить, что проблема может скрываться из-за их любви к пробелам. Но это, в данном случае, просто лирическое отступление.

да, забыл указать.

Код:
 Сервер: вер. 6.1.963 / 17.09.2014 17:12:01
    os: Linux; java: Java HotSpot(TM) Server VM, v.1.7.0_67
 mps: вер. 6.1.175 / 08.09.2014 16:51:41

Автор:  Artur [ 29 июл 2015, 13:19 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
Код:
 Сервер: вер. 6.1.963 / 17.09.2014 17:12:01
    os: Linux; java: Java HotSpot(TM) Server VM, v.1.7.0_67
 mps: вер. 6.1.175 / 08.09.2014 16:51:41


Нужно ли приводить цитаты ув. dimon из соседних тем про использование старых версий?

Автор:  skyb [ 29 июл 2015, 13:41 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Artur писал(а):
skyb писал(а):
Код:
 Сервер: вер. 6.1.963 / 17.09.2014 17:12:01
    os: Linux; java: Java HotSpot(TM) Server VM, v.1.7.0_67
 mps: вер. 6.1.175 / 08.09.2014 16:51:41


Нужно ли приводить цитаты ув. dimon из соседних тем про использование старых версий?

:cry: :cry: :cry:

Автор:  dimOn [ 29 июл 2015, 14:56 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

налёт древности это круто

Автор:  skyb [ 30 июл 2015, 08:32 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

dimOn писал(а):
налёт древности это круто

да у меня почти каждое обновление вызывает нервный тик

Автор:  Artur [ 30 июл 2015, 11:11 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
dimOn писал(а):
налёт древности это круто

да у меня почти каждое обновление вызывает нервный тик


Для этого существуют тестовые площадки, на которых можно предварительно обкатать все риски....

Автор:  skyb [ 30 июл 2015, 13:27 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Artur писал(а):
skyb писал(а):
dimOn писал(а):
налёт древности это круто

да у меня почти каждое обновление вызывает нервный тик


Для этого существуют тестовые площадки, на которых можно предварительно обкатать все риски....

таки все? :roll:
на тестовом конечно обкатывается и не раз, но все-равно какая то дрянь да вылазет, а когда ещё переписано пол системы, чтобы слинковать со сторонней и написать туже логику что и в биллинге делается руками, в общем коллеги видели как я сидел :-D

Автор:  Artur [ 30 июл 2015, 13:46 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb писал(а):
таки все? :roll:
на тестовом конечно обкатывается и не раз, но все-равно какая то дрянь да вылазет, а когда ещё переписано пол системы, чтобы слинковать со сторонней и написать туже логику что и в биллинге делается руками, в общем коллеги видели как я сидел :-D


Процентов 90%, думаю, точно. Тем более полезны частые обновления, потому что не нужно тестировать на устойчивость пол системы, когда обновлений накопилось слишком много.

Автор:  skyb [ 04 авг 2015, 07:11 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

в общем после обновления тесты пройдены успешно

Автор:  Artur [ 04 авг 2015, 09:58 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

skyb, я думаю у вас обновление заняло меньше времени, чем потратили мы с вами на выяснение, что у вас старые версии. Думаю, что об ошибках следует писать, находясь на самых последних версиях.

Автор:  skyb [ 05 авг 2015, 14:40 ]
Заголовок сообщения:  Re: bisys как правильно прописать параметр секрета?

Artur писал(а):
skyb, я думаю у вас обновление заняло меньше времени, чем потратили мы с вами на выяснение, что у вас старые версии. Думаю, что об ошибках следует писать, находясь на самых последних версиях.

тут было обновляться проще всего =), там была ещё проблема с кодировкой, но она решилась саммостоятельно

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/