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

ОСМП contract_balance (CRM)
http://forum.bitel.ru/viewtopic.php?f=18&t=12337
Страница 1 из 1

Автор:  zavndw [ 28 мар 2017, 07:39 ]
Заголовок сообщения:  ОСМП contract_balance

Правильно ли я понял, что в осмп можно добавить вывод баланса договора (на этапе check) при помощи fields? (Нужно в ПС отдавать сумму к оплате вместо текущего баланса)

Автор:  skn [ 28 мар 2017, 20:31 ]
Заголовок сообщения:  Re: ОСМП contract_balance

версия биллинга?

Автор:  zavndw [ 29 мар 2017, 04:33 ]
Заголовок сообщения:  Re: ОСМП contract_balance

Сервер: вер. 7.0.1187 / 06.02.2017 14:33:55
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_112
mps: вер. 7.0.207 / 03.02.2017 20:14:10

Автор:  stark [ 29 мар 2017, 17:19 ]
Заголовок сообщения:  Re: ОСМП contract_balance

Можно в обработчике события MPSOSMPRequestEvent подменить сумму. Или добавить поля через fields добавить.

Автор:  Artur [ 03 апр 2017, 09:54 ]
Заголовок сообщения:  Re: ОСМП contract_balance

Здравствуйте.
В osmp добавлено расширение osmpFields, которое позволяет формировать в обработчике события MPS: "Перед обработкой запроса ОСМП" набор полей, которые могут отображаться на экране терминала, печататься на чеке, запоминаться в ПС.

В обработчике события код должен формировать строку с полями, формат следующий:

Код:
//Формат строки name1:type1:value1;name2:type2:value2;...;nameN:typeN:valueN
//тип можно не указывать, если предполагается, что поле должно отображаться на
//экране терминала (т.е. тип disp), тогда формат name:value. Разделитель полей - ";", разделитель
//компонентов поля - ":"
StringBuilder sb = new StringBuilder();
sb.append( "sum dolg:" + Utils.formatBigDecimalSumm( saldo ) + ";" );
sb.append( "oplata:" + Utils.formatBigDecimalSumm( event.getRequest().getSum() ) + ";" );
sb.append( "fio:" + cpm.getStringParam( contract.getId(), FIO_PID ) + ";" );
event.getParameters().put( "fields", sb.toString() );
}

Автор:  zavndw [ 03 апр 2017, 13:30 ]
Заголовок сообщения:  Re: ОСМП contract_balance

спасибо

Автор:  barguzin2 [ 08 ноя 2017, 20:22 ]
Заголовок сообщения:  Re: ОСМП contract_balance

osmpFields это хорошо. только почему event.getContractId null выдает? судя по примеру из доки предлагается брать номер аккаунта из request. и замечу, что в общем случае это не номер договора, а какой-то аккаунт, по которому нужно самому "вручную" искать договор в обработчике события. и можно ведь не найти. было бы логичнее провести поиск, а потом уже событие кидать, в котором гарантированно есть contractId. а если договор не найден, то и событие не нужно. поправите?

Автор:  Artur [ 10 ноя 2017, 16:28 ]
Заголовок сообщения:  Re: ОСМП contract_balance

Здравствуйте. Вы правы, так было бы логичнее. Сделаем по-возможности.

Автор:  vkulakov [ 24 ноя 2017, 16:03 ]
Заголовок сообщения:  Re: ОСМП contract_balance (CRM)

Попробовал на своём биллинге отдавать дополнительные поля.

Реализация в биллинге немного отличается от предложенной Сбером (образно говоря), но в Сбере адаптер поправили для нашего формата.

Без поля ContractId, действительно, очень неудобно - приходится реализовывать логику, которая уже есть в биллинге, но которая недоступна в обработчике события. Ещё не хватает метода для получения mpsId - идентификатора платёжной системы в модуле MPS. С помощью mpsId можно обрабатывать только конкретную платёжную систему и игнорировать остальные (если их настроено несколько, как в нашем случае). Если будете модифицировать код, то добавьте, пожалуйста, геттер в MPSRequest для этого поля.

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