forum.bitel.ru http://forum.bitel.ru/ |
|
5.2 ОСМП http://forum.bitel.ru/viewtopic.php?f=18&t=9366 |
Страница 1 из 1 |
Автор: | alf_from_melmok [ 23 июн 2014, 16:25 ] |
Заголовок сообщения: | 5.2 ОСМП |
Добрый день! Подскажите пожалуйста, есть ли возможность указать разделитель рублей и копеек в сумме платежа при запросах ответах при работе через ОСМП протокол? Дело в том, что в SFOUR-ном ПО в реализации протокола ОСМП используется разделитель "," в то время как в оригинале используется "." |
Автор: | skn [ 23 июн 2014, 18:15 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
в следующем билде будет возможность задать в конфиге флаги Код: osmp.sum.decimal.separator=,
osmp.account.balance.decimal.separator=, |
Автор: | alf_from_melmok [ 03 июл 2014, 16:10 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Спасибо! |
Автор: | alf_from_melmok [ 06 окт 2014, 17:33 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
А как пользоватся? Пробывал добавить так в конфиг модуля Код: mps.1.osmp.sum.decimal.separator=, mps.1.osmp.account.balance.decimal.separator=, не сработало! на запрос: Код: ?command=pay&txn_id=492&account=XXXXX&txn_date=20141006152048&sum=73,60 говорит Код: <response> <result>300</result> <osmp_txn_id>492</osmp_txn_id> <prv_txn>0</prv_txn> <sum/> <comment>Ошибка запроса</comment> </response> Ставлю точку - запрос проходит нормально. Пробывал так ставить в конфиг модуля Код: osmp.sum.decimal.separator=, osmp.account.balance.decimal.separator=, тоже не помогает. Также устанавливал в конфиг ядра - результат тот же - Ошибка запроса Код: Информация о версии:
Клиент: вер. 5.2 сборка 1221 от 01.10.2014 15:16:52 os: Linux; java: OpenJDK 64-Bit Server VM, v.1.6.0_31 ВНИМАНИЕ: Виртуальная машина OpenJDK 64-Bit Server VM не рекомендуется Сервер: вер. 5.2 сборка 1609 от 01.10.2014 15:16:55 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 card вер. 5.2 сборка 207 от 08.09.2014 17:34:48 inet вер. 5.2 сборка 1342 от 02.10.2014 18:39:43 mps вер. 5.2 сборка 183 от 16.07.2014 19:00:30 npay вер. 5.2 сборка 208 от 17.06.2014 13:35:03 |
Автор: | skn [ 06 окт 2014, 22:47 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
это куда запрос? Код: ?command=pay&txn_id=492&account=XXXXX&txn_date=20141006152048&sum=73,60 к серверу платежной системы? |
Автор: | barguzin2 [ 07 окт 2014, 08:34 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
судя по ответу явно к MPS запрос. покажите полный раздел конфига, касающийся настройки данной ПС и версию биллинга. |
Автор: | alf_from_melmok [ 07 окт 2014, 14:13 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
В <response> есть принт в sum с "РУБ,КОП" при включенных флагах *.separator=",". А при запросе "большой железобетонный..." на этот separator... Конфиг модуля Код: osmp.sum.decimal.separator=, osmp.account.balance.decimal.separator=, #Системы платежей добавляются как mps.<x>.параметры, где <x> - порядковый номер #Вкл/выкл - 1/0 - принимать или нет платежи для этой пс mps.1.mode=1 #Название mps.1.title="ОСМП" #Используемый протокол для общения пс с биллингом mps.1.protocol=osmp #Логин/пароль пс. Должен различаться для различных систем mps.1.login= mps.1.passw= #Отключение Base-аутентификации mps.1.protocol.ext=noBaseAuth #id типа платежа, с которым добавляется платёж в договор, при проведении с этой пс mps.1.pid=2 # #Комментарий, возвращающийся в ответе на проверку статуса/проведение платежа #(если в протоколе есть комментарий ответа) mps.1.comment=$contract_title ($contract_comment), баланс: $contract_balance руб. #mps.comment=$contract_title ($contract_comment) # #Сертификаты #Проверять клиентский сертификат (рекомендуется, если позволяет протокол пс) mps.1.cert=0 #Клиентский сертификат (открытый ключ) #(для протокола eport открытый ключ указывается здесь же, а mps.1.cert=0) #возможно указать через modulus и exponent: #mps.1.cert.mod= #mps.1.cert.exp= #или в encoded(байты в 16-ричном представлении) #mps.1.cert.encoded= #или в pem (base64), без header/footer (-----*** PUBLIC KEY-----) и переносов строк #mps.1.cert.pem= # # #Поиск договора для проведения платежа. #В некоторых системах возможны типы поиска - дополнительное поле с числовым значением. #Если поле отсутствует, используется тип поиска 0, #т.е. используются параметры поиска из mps.1.search.xxx (mps.1.search.mode), если же присутствует и, например, #его значение 1, то параметры поиска будут из mps.1.search.1.xxx (mps.1.search.1.mode) # #Поддержка передачи типа поиска через префикс #(т.е. если ищется договор x0000 c типом поиска 1, то в поле account протокола osmp передаётся 1_x0000) #mps.1.protocol.ext=osmpPrefix #Если используется несколько расширений, их нужно прописать через запятую: #mps.1.protocol.ext=noBaseAuth,osmpPrefix # #Тип поиска (contract|login|phone|mps_login) mps.1.search.mode=contract #Код модуля для поиска (необходим для типов поиска login, phone) #mps.1.search.mid= #Шаблон преобразования - pattern:::result, если пришедшее значение подходит под regexp, то #оно преобразуется перед поиском, если нет - остаётся без изменений, по умолчанию - без изменений. #Например, \A((?:\d{5})|(?:\d{6})|(?:\d{7}))(\d{2})\z:::NK$1-$2 #если пришедший номер для поиска представляет собой 12345608, то он будет преобразован в NK123456-08, #и уже по нему будет произведён поиск договора #mps.1.search.pattern= #regexp названий договоров, для которых возможен поиск. Если название договора не совпадает с regexp, #то он не будет найден для системы платежей для этого типа поиска #mps.1.search.allow.contract.regexp=NK-.* #Группы договоров, для которых возможен поиск для этого типа поиска mps.1.search.pattern=INET-$NUMBER mps.1.numberPattern=\d+ mps.1.search.allow.contract.groups=0 # # Ограничения на пополняемую сумму #минимальная mps.1.min.summ=10 #максимальная mps.1.max.summ=15001 # #Разница во времени в минутах между сервером биллинга и системой платежей (например система работает по московскому времени, биллинг #по уфимскому +2 часа - 180) #mps.1.timeoffset= #промежуток времени между временем платежа и реальным временем, с поправкой на timeoffset. #если задано и промежуток оказался больше то платёж не пройдёт # 7 суток mps.1.paytime=10080 # #Параметры логина mps (может использоваться для поиска договора при проведении платежа) #Формат вывода значения числового логина mps (на web-статистике) #mps.mps_login.format= #regexp проверки введённого значения #mps.mps_login.regexp= #Ошибка, выводимая в web-статистике при несовпадении введённого логина mps с regexp #mps.mps_login.regexp.error= Лог модуля MPS при DEBUG. (Большое Человеческое Спасибо - barguzin2 за подсказку). Код: 10-07/11:36:26 DEBUG ["http-bio-/0.0.0.0-8080"-exec-4] mps - System: "ОСМП" Request: /4/1 txn_date=20141007113350&txn_id=5020&command=pay&account=7755&sum=14,00& Response: <?xml version="1.0" encoding="UTF-8"?><response><result>300</result><osmp_txn_id>5020</osmp_txn_id><prv_txn>0</prv_txn><sum/><comment>Ошибка запроса</comment></response> 10-07/11:37:12 DEBUG ["http-bio-/0.0.0.0-8080"-exec-5] mps - System: "ОСМП" Request: /4/1 txn_date=20141007113350&txn_id=5021&command=pay&account=7755&sum=14.00& Response: <?xml version="1.0" encoding="UTF-8"?><response><result>0</result><osmp_txn_id>5021</osmp_txn_id><prv_txn>10</prv_txn><sum>14,00</sum><comment>Платеж принят на: INET-7755 (Тестовый технический договор), баланс: 351.36 руб.</comment></response> <response> <result>0</result> <osmp_txn_id>5021</osmp_txn_id> <prv_txn>10</prv_txn> <sum>14,00</sum> <comment> Платеж принят на: INET-7755 (Тестовый технический договор), баланс: 351.36 руб. </comment> </response> Код: Информация о версии:
Клиент: вер. 5.2 сборка 1221 от 01.10.2014 15:16:52 os: Windows 2003; java: Java HotSpot(TM) Client VM, v.1.6.0_37 Сервер: вер. 5.2 сборка 1609 от 01.10.2014 15:16:55 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 card вер. 5.2 сборка 207 от 08.09.2014 17:34:48 inet вер. 5.2 сборка 1342 от 02.10.2014 18:39:43 mps вер. 5.2 сборка 183 от 16.07.2014 19:00:30 npay вер. 5.2 сборка 208 от 17.06.2014 13:35:03 |
Автор: | skn [ 07 окт 2014, 15:08 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
в чем проблема, не пойму? |
Автор: | alf_from_melmok [ 07 окт 2014, 20:22 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
проблема в том, что не работает фича. 1. Биллинг не проводит платеж, при: а) Конфиг модуля Код: osmp.sum.decimal.separator=, osmp.account.balance.decimal.separator=, б) запрос в сторону модуля MPS Пример запроса: Код: ?command=pay&txn_id=492&account=XXXXX&txn_date=20141006152048&sum=73,60 Ответ биллинга: Код: <response> <result>300</result> <osmp_txn_id>492</osmp_txn_id> <prv_txn>0</prv_txn> <sum/> <comment>Ошибка запроса</comment> </response> подробности постом выше. Однако, при этих же настройках, если дать запрос вида Код: ?command=pay&txn_id=492&account=7755&txn_date=20141006152048&sum=73.60 то в ответ получим: Код: <response> <result>0</result> <osmp_txn_id>5021</osmp_txn_id> <prv_txn>10</prv_txn> <sum>14,00</sum> <comment> Платеж принят на: INET-7755 (Тестовый технический договор), баланс: 351.36 руб. </comment> </response> Где справедливость? |
Автор: | barguzin2 [ 07 окт 2014, 20:30 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Насколько я понял комрада, суть в том, что настройки Код: osmp.sum.decimal.separator=, osmp.account.balance.decimal.separator=, не распознают запятую в сумме в запросе, а только подставляют эту запятую в сумму в ответе. хотя, если уж запятые, то должны и в запросе и ответе одинаково быть для порядка. а если в запросе разделитель копеек запятая, то вылетает ошибка запроса. похоже, нужно просто добавить замену запятой на точку при получении параметра суммы чтобы он парсился нормально. |
Автор: | alf_from_melmok [ 07 окт 2014, 20:32 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Ну да... просто я не очевидно это описал. Возможно несколько сумбурно. |
Автор: | alf_from_melmok [ 07 окт 2014, 20:43 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Давайте так, нужно чтобы запрос вида: Код: ?command=pay&txn_id=492&account=XXXXX&txn_date=20141006152048&sum=73,60 проводил платеж. Сейчас он выдает ошибку запроса при попытке использовать в sum разделитель РУБЛЕЙ и КОПЕЕК - "запятая". Указанное происходит при флагах: Код: osmp.sum.decimal.separator=, osmp.account.balance.decimal.separator=, в конфиге модуля MPS. |
Автор: | skn [ 08 окт 2014, 03:50 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
какой билд модуля MPS? от какого числа? |
Автор: | alf_from_melmok [ 08 окт 2014, 13:42 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
дублирую: Код: Информация о версии:
Клиент: вер. 5.2 сборка 1221 от 01.10.2014 15:16:52 os: Windows 2003; java: Java HotSpot(TM) Client VM, v.1.6.0_37 Сервер: вер. 5.2 сборка 1609 от 01.10.2014 15:16:55 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 card вер. 5.2 сборка 207 от 08.09.2014 17:34:48 inet вер. 5.2 сборка 1342 от 02.10.2014 18:39:43 mps вер. 5.2 сборка 183 от 16.07.2014 19:00:30 npay вер. 5.2 сборка 208 от 17.06.2014 13:35:03 |
Автор: | skn [ 08 окт 2014, 16:01 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
попробуйте обновить до последней |
Автор: | alf_from_melmok [ 08 окт 2014, 20:46 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Обновился. Теперь перестало вообще принимать запросы. На любой запрос отвечает (с запятой и с точкой, с включенными флагами osmp.separator и без) один ответ у него: Код: <response>
<result>300</result> <osmp_txn_id>505</osmp_txn_id> <comment>Ошибка запроса</comment> </response> |
Автор: | skn [ 08 окт 2014, 20:57 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
а в логах что нибудь есть? |
Автор: | alf_from_melmok [ 09 окт 2014, 11:19 ] |
Заголовок сообщения: | Re: 5.2 ОСМП |
Сорри, еще раз проверил - начал принимать и с запятой и без. Сейчас все нормально. Наверно браузер подвел вчера при тестировании. Но есть ньюанс, MPS теперь все равно какой разделитель приходит в sum - точка или запятая. Флаги вида osmp.separator.* работают только на формат при выводе значения sum в XML-response. Для меня такое поведение не критично. Логи появились (забыл после обновления включить дебаг, т.к. конфиг-файл log4j затерся на новый). |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |