Это старая версия документа!
ПриватБанк ver.2 (кассы, терминалы, privat24)
Доступно с версии 2.5.4.
Пример заявки на подключение провайдера
Сообщите менеджеру Server URL вида https://admin.ispnet.demo/ajax/index/privat2ndversion и то, что работаете по второй версии протокола.
Алгоритм работы:
- предварительный поиск (Presearch)
- поиск после предварительного поиска (Search после Presearch)
- оплата услуг (Pay)
Также, что Ваш companyCode = 1 и serviceCode = 101. Для предварительного поиска (ПП) абонентов (по полям: uid, login, номер договора) использовать функцию Presearch и присылать параметр для поиска как ls. Т.е. запрос на ПП должен иметь вид:
<?xml version="1.0" encoding="UTF8" standalone="yes"?> <Transfer xmlns="http://debt.privatbank.ua/Transfer" interface="Debt" action="Presearch"> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:type="Payer"> <Unit name="ls" value="testuser" /> </Data> </Transfer>
После него выполняется "Поиск (Search) после ПП", в котором по идентификатору абонента (bill_identifier = uid) производится получение информации о нём и рекомендуемый платёж.
В завершение происходит Оплата (метод Pay).
Пояснения:
Примеры запросов/ответов
Методы SearchAfterPresearch и Search
Запрос:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Transfer action="Search" interface="Debt" xmlns="http://debt.privatbank.ua/Transfer"> <Data xsi:type="Payer" presearchId="3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </Transfer>
Ответ:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Transfer xmlns="http://debt.privatbank.ua/Transfer" interface="Debt" action="Search"> <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DebtPack" > <DopData> <Dop name="login" value="office"/> <Dop name="uid" value="3"/> <Dop name="dogovor" value="12345"/> </DopData> <PayerInfo billIdentifier="3"> <Fio>Криворукий Степан Иванвич</Fio> <Address>Киев Гоголя 1</Address> </PayerInfo> <ServiceGroup> <DebtService serviceCode="101" > <CompanyInfo> <CompanyCode>1</CompanyCode> </CompanyInfo> <DebtInfo amountToPay="0" debt="-1210.81"/> <PayerInfo billIdentifier="3"> <Fio>Криворукий Степан Иванвич</Fio> </PayerInfo> </DebtService> </ServiceGroup> </Data> </Transfer>
Элемент | Атрибут | Описание |
---|---|---|
/Transfer/Data/DopData | Дополнительные параметры абонента (uid, login, dogovor) | |
/Transfer/Data/PayerInfo/Address | Адрес | |
/Transfer/Data/PayerInfo/Fio | ФИО | |
/Transfer/Data/ServiceGroup/DebtService/DebtInfo | amountToPay | Сумма к оплате |
/Transfer/Data/ServiceGroup/DebtService/DebtInfo | debt | Сумма задолженности. Отрицательное значение обозначает переплату, положительное — задолженность. |
<DopData> <Dop name="login" value="office"/> <Dop name="uid" value="3"/> <Dop name="dogovor" value="12345"/> </DopData>
<Fio>Криворукий Степан Иванвич</Fio> <Address>Киев Гоголя 1</Address>
<DebtInfo amountToPay="0" debt="-1210.81"/>
Услуги
При использовании "Предварительного Поиска" поиск абонента производится по uid, login, номер договора. Поиск и оплата происходит для основных групп пользователей: обычный (базовый) и замороженный.
Если же сразу производить "Поиск", то однозначная идентификация абонента производится по полю uid.
По запросу на поиск, будет возвращены Ф.И.О. пользователя в виде "Иванов Михаил Иванович" и сумма, рекомендуемая к оплате с учётом текущего депозита и индивидуальной скидки абонента.
В зависимости от того в каком виде будет получен запрос, сервер MikBill автоматически его обработает, настроек не требует.
Настройка MikBill
Открываем "Настройки"→"Системные опции". Вкладка "Терминалы"
Параметр | Пояснение |
---|---|
Обязательные: | |
подсеть | 217.117.64.232/32,217.117.68.232/32 (по состоянию на июль 2017) Подсеть, из которой разрешён доступ (уточняйте у менеджера - может она изменилась) |
Название компании | ваше название компании |
МФО | мфо для р/с |
ОКПО | окпо для р/с |
Р/С | р/с компании |
Не обязательные: | |
процент отчислений | Необходимо для отчетности |
Так же выберете способы, какими Вы хотите, чтоб система искала абонентов: UID, login, номер договора. Будут использованы все выбранные Вами варианты.
Всё, настройка закончена.
Как это работает
Провайдер имеет договор с ПриватБанком и расчетный счет.
Клиент приходит в кассу и говорит кассиру "я хочу пополнить счет своего провайдера" (и называет его). Абонент называет свой UID или ЛОГИН или НОМЕР ДОГОВОРА.
Кассир делает запрос в биллинг на поиск пользователя и сначала получает список "возможных" пользователей (например, если у Вас в системе могут совпадать UID одного абонента с логином другого). По ФИО абонента кассир уточняет, найден ли абонент правильно. Если всё верно, то делается запрос на уточнение состояния баланса абонента и сумму рекомендательного платежа.
Оплата на разные Р/С в ПриватБанке по признаку дилера у абонента
С версии 2.7.15 в MikBiLL появилась возможность выполнять перевод средств абонента при пополнении на различные Р/С исходя из свойств абонента, а именно того, кто является его дилером.
Для этого Вам необходимо сначала в ПриватБанке установить, за какой ID отвечает какой Р/С. ID пользователя будет возвращено в атрибуте CompanyCode
:
<ServiceGroup><DebtService serviceCode="101" ><CompanyInfo><ServiceGroup><DebtService serviceCode="101" > <CompanyCode>ID_ДИЛЕРА</CompanyCode> </CompanyInfo> </DebtService></ServiceGroup>
, где ID_ДИЛЕРА и будет ID дилера, которому принадлежит абонент.
Так же Вам необходимо в системных опциях включить свойство "Привязать к дилеру" в настройке "ПриватБанк v.2".