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

Начались проблемы с bisys (CRM)
http://forum.bitel.ru/viewtopic.php?f=18&t=11378
Страница 1 из 1

Автор:  SEA-Jay [ 25 фев 2016, 13:17 ]
Заголовок сообщения:  Начались проблемы с bisys

Добрый день.

Что то сегодня от бисиса письмо пришло

"Неверная подпись ответа"
хотя платежи ходят, решил проверить, и вот что получилось

шлем запрос
<?xml version="1.0" encoding="UTF-8"?>
<request>
<params><act>1</act><account>000020</account><pay_amount>1000</pay_amount></params>
<sign>f6374905be2bd2d53ce164c3ed24ae93</sign>
</request>

хэш от <act>1</act><account>000020</account><pay_amount>1000</pay_amount>test1234 f6374905be2bd2d53ce164c3ed24ae93

приходит ответ

<response>
<params>
<err_code>0</err_code>
<err_text>Договор найден - оплата возможна</err_text>
<account>000020</account>
<balance>1200.00</balance>
<client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name>
</params>
<sign>bcaef66a2aad1a272896a4248519c6be</sign>
</response>

считаем что должно быть в подписи

<err_code>0</err_code>
<err_text>Договор найден - оплата возможна</err_text>
<account>000020</account>
<balance>1200.00</balance>
<client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name>f6374905be2bd2d53ce164c3ed24ae93test1234

получилось BE44A5FF9E1974D3A1D7F81284809EBF в дайжесте биллинга
смотрим тут http://md5info.ru/demo - получилось a946ffa4fb165d646040d6660dff7608

ни то не другое рядом с bcaef66a2aad1a272896a4248519c6be не находится

чему верить и что чинить?


Клиент: вер. 6.2.772 / 25.11.2015 18:24:36
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_51
Сервер: вер. 6.2.982 / 02.12.2015 18:39:25
os: FreeBSD; java: OpenJDK 64-Bit Server VM, v.1.8.0_45

Автор:  Artur [ 25 фев 2016, 13:24 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

Здравствуйте. Пришлите лог запроса и лог ответа из файла логов. Предварительно включите в конфигурации data/log4g.xml значение DEBUG у параметра priority в секции root.

Автор:  SEA-Jay [ 25 фев 2016, 14:18 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] MPSExecutor - MPS (getLoginAndPasswordFromHeaderAuthorization): userName=null; userPswd=null
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Получение параметров запроса
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Полученная xml: <?xml version="1.0" encoding="UTF-8"?>
<request>
<params><act>1</act><account>000020</account><pay_amount>1000</pay_amount></params>
<sign>f6374905be2bd2d53ce164c3ed24ae93</sign>
</request>
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Полученные параметры из xml:
act = 1; sign = f6374905be2bd2d53ce164c3ed24ae93; account = 000020; agent_date = null; pay_id = null; pay_amount = 1000; serv_code = null
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Строка, из которой вычисляется хэш для проверки пришедшей подписи: <act>1</act><account>000020</account><pay_amount>1000</pay_amount>test1234
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Получившаяся подпись: f6374905be2bd2d53ce164c3ed24ae93
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Операция проверки платежа - проверка существования договора
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Строка, из которой формируется MD5-подпись для ответа сервису: <err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000020</account><balance>1200.00</balance><client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name>f6374905be2bd2d53ce164c3ed24ae93test1234
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Сформированная MD5-подпись: bcaef66a2aad1a272896a4248519c6be
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] BiSysTransactionManager - Ответная xml сервису: <?xml version="1.0" encoding="UTF-8"?><response><params><err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000020</account><balance>1200.00</balance><client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name></params><sign>bcaef66a2aad1a272896a4248519c6be</sign></response>
02-25/08:13:46 DEBUG [http-bio-0.0.0.0-8443-exec-7] mps - Filter (mpsexecuterSetCharacterEncoding) = null
FilterCharacterEncoding=UTF-8
System: Сбербанк(биллинговые системы)
Request:
/2/2
params=<?xml version="1.0" encoding="UTF-8"?>
<request>
<params><act>1</act><account>000020</account><pay_amount>1000</pay_amount></params>
<sign>f6374905be2bd2d53ce164c3ed24ae93</sign>
</request>&
Response:
<?xml version="1.0" encoding="UTF-8"?><response><params><err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000020</account><balance>1200.00</balance><client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name></params><sign>bcaef66a2aad1a272896a4248519c6be</sign></response>

Автор:  skn [ 25 фев 2016, 15:19 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

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

Автор:  Artur [ 25 фев 2016, 15:52 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

Если честно, то ситуация не очень понятна на самом деле.
Если считать хеш от приведенной вами строки

<err_code>0</err_code>
<err_text>Договор найден - оплата возможна</err_text>
<account>000020</account>
<balance>1200.00</balance>
<client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name>f6374905be2bd2d53ce164c3ed24ae93test1234

вместе с теми переносами строк, которые есть в тексте, то хеш будет отличаться от того, что сформировал биллинг. Если же убрать из этой строки переносы и сделать в виде одной строки (как и делает биллинг):

<err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000020</account><balance>1200.00</balance><client_name>[ПК/001/15] [Иванов Иван Иванович]</client_name>f6374905be2bd2d53ce164c3ed24ae93test1234

То вычисление дайджеста в биллинге, а также на разных сайтах (http://decodeit.ru/md5, http://www.md5.cz/ и др, кроме приведенного вами) будет выдавать подпись, которую и формирует биллинг при ответе в bisys, т.е. bcaef66a2aad1a272896a4248519c6be. Вы можете сами посмотреть в логах из какой строки формируется подпись и сравнить.
Возникает вопрос, какую подпись и от какой строки они ждут в ответе от биллига? В логах биллинга видно какую строку наш биллинг отправляет в ответ. Возможно, что они эту строку как то иначе воспринимают, может в кодировке cp1251.

Автор:  SEA-Jay [ 25 фев 2016, 17:27 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

скорей всего они ждут в кодировке 1251, потому как примеры и скрипты для теста содержат <?xml version="1.0" encoding="windows-1251"?>

тогда вопрос, как им отдать в 1251 ?

Автор:  skn [ 25 фев 2016, 17:41 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

а у них вроде как можно в ЛК задавать кодировки

Автор:  Artur [ 25 фев 2016, 17:44 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

SEA-Jay писал(а):
скорей всего они ждут в кодировке 1251, потому как примеры и скрипты для теста содержат <?xml version="1.0" encoding="windows-1251"?>

тогда вопрос, как им отдать в 1251 ?


Мы вроде с ними договаривались, что будем в urf-8 общаться. Можем вынести эту настройку в конфиг модуля.

Автор:  SEA-Jay [ 25 фев 2016, 17:45 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

давайте сделаем в конфиге, я думаю это быстрей будет )))

Автор:  Artur [ 25 фев 2016, 18:06 ]
Заголовок сообщения:  Re: Начались проблемы с bisys

Будет на следующей неделе.

Автор:  Alex-XXI [ 24 май 2017, 14:34 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Пытаемся настроить прием платежей через протокол bisys. Возникла проблема с несовпадением подписей.
На запрос
Код:
<?xml version="1.0" encoding="UTF-8"?><request><params><act>1</act><account>000001</account><pay_amount>1000</pay_amount></params><sign>FEF399687062EA8ECC796A93A7B521D3</sign></request>

биллинг отвечает
Код:
<?xml version="1.0" encoding="UTF-8"?><response><params><err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000001</account><balance>-4017.74</balance><client_name>[000001] [Тестовый договор] [Тестовый договор]</client_name></params><sign>5ec5a8c8a2bcc4936bee7b45913b3b6b</sign></response>

Но если вычислить подпись через вычисление digest в биллинге и на сайтах(например www.codenet.ru/services/md5/) для
Код:
<err_code>0</err_code><err_text>Договор найден - оплата возможна</err_text><account>000001</account><balance>-4017.74</balance><client_name>[000001] [Тестовый договор] [Тестовый договор]</client_name>FEF399687062EA8ECC796A93A7B521D3test1234

то получаем 9c64409f1e7714438c3a121270572896, что не совпадает с 5ec5a8c8a2bcc4936bee7b45913b3b6b

Автор:  Artur [ 24 май 2017, 14:49 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Здравствуйте. Пришлите лог запроса и лог ответа из файла логов. Предварительно включите в конфигурации data/log4g.xml значение DEBUG у параметра priority в секции root.

Автор:  Phricker [ 24 май 2017, 15:58 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Проверьте кодировку. Была проблема именно из за кодировки.

Автор:  Alex-XXI [ 24 май 2017, 19:04 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Помогло добавление "export LC_ALL=ru_RU.UTF-8" в setenv.sh

Автор:  Artur [ 25 май 2017, 14:18 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Alex-XXI писал(а):
Помогло добавление "export LC_ALL=ru_RU.UTF-8" в setenv.sh

Необходимо разобраться досконально в вопросе. Верните, пожалуйста, на время в исходное состояние LC_ALL и проведите платеж c логами в режиме DEBUG и приложение лог сюда. Также приложите, пожалуйста, конфиг платежной подсистемы из конфигурации модуля.

Автор:  Artur [ 25 май 2017, 14:49 ]
Заголовок сообщения:  Re: Начались проблемы с bisys (CRM)

Добавили поддержку параметра mps.<mpsId>.response.encoding при формировании подписи в ответе. Если параметр не задан в конфигурации, то будет по умолчанию выставлено UTF-8. Возможно, что у вас системная кодировка не utf-8.

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