Создайте нередактируемые не редактируемые типы платежей для систем платежей. id типов платежей можно узнать также в справочнике, выделив нужный тип платежа и нажав Ctrl+i. id нужно будет указать в конфигурации.
Проинсталируйте модуль на сервер, обновите клиент биллинга. Затем создайте экземпляр модуля. Cоздайте Создайте в редакторе конфигурации модуля новую конфигурацию по нижеприведённому примеру и сделайте ее активной.
Для всех систем платежей рекомендуется использовать только https-порт.
Здесь и далее "псПС" - платёжная система.
Возможные параметры конфигурации модуля:
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# параметр задает список конфигураций ПС, если не указан, то по умолчанию mps.ids=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 mps.ids=<mpsId_1>[,<mpsId_2>][,<mpsId_3>]...[,<mpsId_N>] # Системы платежей добавляются как mps.<mpsId>.параметры, где <mpsId> - порядковыйуникальный номер ключ в пределах данной конфигурации # Вкл/выкл - 1/0 - принимать или нет платежи для этой псПС mps.<mpsId>.mode=1 # Название mps.<mpsId>.title=CyberPlat # Используемый протокол для общения псПС с биллингом mps.<mpsId>.protocol=cp # Логин/пароль пс. Должен различаться для различных систем mps.<mpsId>.login= mps.<mpsId>.passw= # id типа платежа, с которым добавляется платёж в договор, при проведении с этой псПС mps.<mpsId>.pid= # # Комментарий, возвращающийся в ответе на проверку статуса/проведение платежа # (если в протоколе есть комментарий ответа) #mps.comment=$CONTRACT ($COMMENT) # # Сертификаты # Проверять клиентский сертификат (рекомендуется, если позволяет протокол псПС) mps.<mpsId>.cert=1 # Клиентский сертификат (открытый ключ) # (для протокола eport открытый ключ указывается здесь же, а mps.1.cert=0) # возможно указать через modulus и exponent: #mps.<mpsId>.cert.mod= #mps.<mpsId>.cert.exp= # или в encoded(байты в 16-ричном представлении) #mps.<mpsId>.cert.encoded= # или в pem (base64), без header/footer (-----*** PUBLIC KEY-----) и переносов строк mps.<mpsId>.cert.pem= # кодировка параметров входящих запросов, например utf-8, cp1251 #mps.<mpsId>.request.encoding= # Поиск договора для проведения платежа. # В некоторых системах возможны типы поиска - дополнительное поле. # Если их больше 1, то с дополнительным индексом. Если он отсутствует, используется тип поиска 0, # т.е. используются параметры поиска из mps.1.search.xxx (для mps.1.search.mode). # Если присутствует то, например, параметры поиска будут из mps.1.search.1.xxx (для mps.1.search.1.mode) # Обратите внимание, что если если задано без индекса (...search.mode=), то и остальные параметры должны # соответствовать (...search.pattern=) и для остальных индексов аналогично. # # Поддержка передачи типа поиска через префикс # (т.е. если ищется договор x0000 c типом поиска 1, то в поле account протокола osmp передаётся 1_x0000) #mps.<mpsId>.protocol.ext=osmpPrefix # Отключение Base-аутентификации #mps.<mpsId>.protocol.ext=noBaseAuth # Если используется несколько расширений, их нужно прописать через запятую: #mps.<mpsId>.protocol.ext=noBaseAuth, osmpPrefix # # Тип поиска (mps_login|contract|login|voice|email|phone|parameter|inet_login|custom) mps.<mpsId>.search.mode= # Код модуля для поиска (необходим для типов поиска login, phone) #mps.<mpsId>.search.mid= # Включение "множественного поиска", то есть проверка всего списка regex # при влючении этого режима возможно задание нескольких условий поиска в формате #mps.1<mpsId>.search.multi=1 #mps.<mpsId>.search.1.mode=contract #mps.<mpsId>.search.1.pattern=afsdfaf #mps.<mpsId>.search.2.mode=parameter #mps.<mpsId>.search.2.pid=4 #mps.<mpsId>.search.3.mode=phone #mps.<mpsId>.search.3.mid=5 # Шаблон преобразования - pattern:::result, если пришедшее значение подходит под regexp, то # оно преобразуется перед поиском, если нет - остаётся без изменений, по умолчанию - без изменений. # Например, \A((?:\d{5})|(?:\d{6})|(?:\d{7}))(\d{2})\z:::NK$1-$2 # если пришедший номер для поиска представляет собой 12345608, то он будет преобразован в NK123456-08, # и уже по нему будет произведён поиск договора #mps.<mpsId>.search.pattern= # пользовательский класс реализующий поиск, должен реализовывать интерфейс ru.bitel.bgbilling.modules.mps.server.bean.FindContract #mps.<mpsId>.search.custom= # regexp названий договоров, для которых возможен поиск. Если название договора не совпадает с regexp, # то он не будет найден для системы платежей для этого типа поиска #mps.<mpsId>.search.allow.contract.regexp=NK-.* # Группы договоров, для которых возможен поиск для этого типа поиска #mps.<mpsId>.search.allow.contract.groups=4,2,5,3 # # Ограничения на пополняемую сумму # минимальная. По умолчанию - 0. mps.<mpsId>.min.summ= # максимальная. По умолчанию - 1000000 mps.<mpsId>.max.summ= # # Разница во времени в минутах между сервером биллинга и системой платежей (например система работает по московскому времени, биллинг # по уфимскому +2 часа - 180) #mps.<mpsId>.timeoffset= # промежуток времени между временем платежа и реальным временем, с поправкой на timeoffset. # если задано и промежуток оказался больше то платёж не пройдёт #mps.<mpsId>.paytime= # # Параметры логина mps (может использоваться для поиска договора при проведении платежа) # Формат вывода значения числового логина mps (на web-статистике) #mps.mps_login.format= # regexp проверки введённого значения #mps.mps_login.regexp= # Ошибка, выводимая в web-статистике при несовпадении введённого логина mps с regexp #mps.mps_login.regexp.error= # #mps.<mpsId>.request.encoding=utf-8 #mps.<mpsId>.response.encoding=utf-8 |
В поле mps.1.protocol.ext можно указать расширения, если их несколько - через запятую:
...
addBalanceInfo - в ответ добавляется текущий баланс в поле account_balance (ОСМП, Empay, Pegas, Rapida, Comepay).
Примечание |
---|
URL для платежных систем |
...
формируется из шаблона https:// |
...
хост[:port]/контекст/mpsexecuter/<mid>/<mpsid>, |
...
где контекст - по умолчанию bgbilling, <mid> - id модуля MPS, <mpsid> - код системы платежей, т.е. для вышеописанной конфигурации у CyberPlat mpsid=1. Например, https://server:8443/bgbilling/mpsexecuter/10/1 |
Типы поиска :
- login - поиск по логину модулей DialUp или Voip (необходимо указать id модуля (mid)):
...
Для протоколов, не поддерживающих передачу типа поиска, реализована передача типа поиска через префикс x_идентификаторклиента идентификатор клиента (например, для ОСМП в поле account для поиска по search.1 логина 13 в запросе должно приходить: account=1_13). Для поддержки этого режима нужно установить mps.x.protocol.ext=1.
В комментарии ответа (если такой поддерживатся поддерживается протоколом) можно передать номер, комментарий, параметр и/или баланс договора
...