
"ДБО BS-Client. Частный Клиент" v.2.4
Описание Адаптера для интеграции с платежной системой CyberPlat
Руководство администратора
Версия 2.4.0.7
2. Аннотация
Система «Частный Клиент» это полнофункциональное тиражируемое решение, обеспечивающее удобное и надежное обслуживание розничных клиентов через Интернет и по телефону. Система включает в себя практически полный пакет электронных услуг для обслуживания счетов Клиентов, операций с кредитами, депозитами и картами Клиента, осуществления переводов и платежей.
Система «Частный Клиент» включает в себя следующие подсистемы:
· Интернет-клиент
· Телефон-клиент
· Информационный клиент
· Мобильный клиент (КПК)
· WAP-клиент
· iPhone-Клиент
· Android-Клиент
· Мобайл-Клиент (сотовые телефоны)
· Киоск Самообслуживания
· Легкий фронт.
Система предназначена для решения задач доставки, контроля и обработки различных типов платежных и информационных документов Клиентов, обмена сообщениями в произвольном формате, получения выписок по картам и счетам.
Данный документ предназначен для администраторов системы и содержит общее описание взаимодействия системы «Частный Клиент» с платежной системой (ПС) CyberPlat.
СОДЕРЖАНИЕ:
1. Аннотация. 2
2. Настройка платежной системы в ЧК. 4
2.1. Параметры Адаптера. 4
2.2. Настройка ЭЦП. 4
2.3. Настройки в Построителе. 5
2.4. Настройки контролей. 6
2.5. Создание автопроцедур для выгрузки оплаты услуг 6
2.6. Журнализация обмена данными с ПС. 7
2.7. Записи справочника «Виды услуг». 7
2.8. Обновление справочников «Виды услуг» и «Группы услуг». 10
2.8.1. Параметры обновления данных. 11
2.8.2. Автопроцедура для импорта данных из системы CyberPlat 11
3. Взаимодействие ЧК, ПС и АБС. 11
3.1. Порядок проведения распоряжения на оплату услуг с использованием ПС 11
3.2. Порядок обмена данными с сервером CyberPlat. 14
3.3. Обмен сообщениями с сервером CyberPlat. 15
3.3.1. CHEK – получение разрешения на платеж. 15
3.3.2. PAY – распоряжение на оплату услуги. 17
3.3.3. STATUS - Проверка состояния платежа. 18
3.3.4. Обработка ответа на запросы. 19
3. Настройка платежной системы в ЧК
В системе предусмотрен тестовый режим работы. Для этого для услуг необходимо задать адреса, куда будут направляться тестовые запросы и в Построителе установить в настройке TestMode значение True (Конфигурации -> IFIZ -> ABSAPI -> CyberPlat).
Внимание. При работе в тестовом режиме, для шифрования сообщений используется отдельный набор ключей. Необходимо указать пути к этим ключам, и пароли на вкладке «Настройки филиалов» в справочнике «Платежные системы», для записи «CyberPlat».
3.1. Параметры Адаптера
Параметры Адаптера содержаться в справочнике «Платежные системы» (Справочники – Оплата услуг – Платежные системы), запись «CyberPlat».
На закладке «Основная» указывается BLL модуль, в котором хранятся настройки адаптера.
Галка «Обновлять справочник в автоматическом режиме» не используется для платежной системы CyberPlat.
На закладке «Дополнительные параметры», настраиваются параметры использующиеся для обновления справочника услуг:
· UpdatePUTypesUrl - URL – адрес, на который отправляется запрос обновления справочника услуг;
· UpdatePUGroupsUrl - URL – адрес, на который отправляется запрос обновления справочника групп услуг;
· LastSession - Дата/время последнего запроса к ПС.
3.2. Настройка ЭЦП
Для работы с системой шифрования сообщений между ЧК и системой CyberPlat необходимо наличие в каталоге SYSTEM (%BSSRoot%\ SYSTEM) следующих файлов: CPSignVerify. dll, LIbIPRIV. dll, libeay32.dll и libssl32.dll.
Файл libssl32.dll не входит в комплект поставки системы «Частный Клиент». Версии библиотек libeay32.dll и libssl32.dll должны совпадать.
Эти параметры задаются на вкладке «Настройки филиалов» в справочнике «Платежные системы» (Справочники _-> Оплата услуг -> Платежные системы), для записи «CyberPlat» (Рис. 2‑1). Если БИК на вкладке не указан, то параметры записи используются для головного отделения банка.
F Для настройки ЭЦП для головного отделения банка или филиала:
Откройте справочник «Платежные системы» (Справочники _-> Оплата услуг -> Платежные системы);
Среди записей справочника выберите запись «CyberPlat» и двойным щелчком левой кнопки мыши откройте форму для её редактирования.
В открывшейся форме прейдите на закладку «Настройки филиалов». Для редактирования существующей записи необходимо её выбрать и двойным щелчком левой кнопки мыши открыть форму для редактирования. Для создания новой записи необходимо нажать кнопку «Insert».
.
Рис. 2‑1 Настройка ЭЦП для системы CyberPlat
· В открывшемся окне редактирования (Рис. 2‑1) укажите необходимые данные для настройки ЭПЦ:
· Поля «Код дилера», «Код точки приема» и «Код оператора» заполняются данными полученными Банком от системы «CyberPlat».
· Укажите путь к закрытому секретному ключу и его пароль.
· Укажите серийный номер и путь к открытому секретному ключу.
3.3. Настройки в Построителе
В Построители должны быть настроены следующие параметры:
StandartABSReq (Конфигурации -> IFIZ -> PUPAY), что бы документы могли выгружаться в ПС, необходимо установить значение FALSE. Если установлено значение TRUE, то документы будут выгружаться только в АБС.
CancelDocumentAfterPSReject (Конфигурации -> IFIZ -> PUPAY), если установить значение TRUE, то при отказе ПС будет формироваться запрос на отзыв документа из АБС (если АБС поддерживает отзыв документа).
TestMode (Конфигурации -> IFIZ -> ABSAPI -> CyberPlat), если установлено значение TRUE, то запросы идут по тестовым адресам. Для работы в обычном режиме необходимо установить значение FALSE.
ConnectionTimeOut (Конфигурации -> IFIZ -> ABSAPI -> CyberPlat) время ожидания ответа от платежной системы в миллисекундах.
NewFormat (Конфигурации -> IFIZ -> ABSAPI -> CyberPlat) если установлено значение TRUE, то будет использоваться протокол взаимодействия с системой «CyberPlat» вступивший в действие 10.07.2011.
3.4. Настройки контролей
Для того, что бы в Интернет-Клиенте отображались услуги, оплачиваемые через систему CyberPlat, необходимо в контроле ShowExtPaysIDS (Настройки -> Настройки контролей -> Документы -> Распоряжение на единовременную оплату услуг -> RETPUPAYONETIME_IFIZ. ShowExtPaysIDS) указать ID платежной системы (для CyberPlat = 4).
3.5. Создание автопроцедур для выгрузки оплаты услуг
Необходимо создать автопроцедуру выгрузки оплаты услуг аналогично другим выгрузкам. В качестве итоговых статусов должны быть указаны: Принят+, Отказан АБС+, Исполнен АБС, Проверка ПС, Проверен ПС, Подтверждение ПС, Отмена ПС, Отмена ПС+ (Рис. 2‑2).

Рис. 2‑2 Создание автопроцедуры для системы CyberPlat
Подробная информация о работе и настройке автопроцедур содержится в документе «Руководство администратора».
3.6. Журнализация обмена данными с ПС
Полный текст запросов к серверу ПС и ответов от него Адаптер записывает в общие логи с запросами/ответами в АБС (в папки RetABS и BS_R_PUPAY). Папки с логами хранятся в каталоге «Logs» (%BSSRoot%\SUBSYS\Logs).
В лог пишется следующая информация:
Идентификатор ПС из параметров функции Адаптера
Референс документа в ЧК
Дата/время создания записи
Полный текст http-запроса или ответа
3.7. Записи справочника «Виды услуг»
В записях справочника «Виды услуг» (Справочники -> Оплата услуг -> Виды услуг) задаются параметры, используемые при оплате услуги через платежную систему CyberPlat.
Более подробная информация о формате запросов для всех провайдеров услуг в платежной системе CyberPlat, находится по адресу - https://service. *****/cgi-bin/view_stat. utf/help. cgi
На вкладке «Дополнительно» должен быть указан «Идентификатор услуги в ПС», значение которого, получается от ПС.
На вкладке «Платежная система» должны быть заданы параметры услуги для её выгрузки в систему CyberPlat (Рис. 2‑3).

Рис. 2‑3 Настройки услуги
На этой вкладке должна присутствовать галка «Включить оплату через платежную систему». И выбрана сама платежная система CyberPlat.
Параметры услуги для выгрузки в систему CyberPlat:
check_url - адрес по которому будет направляться запрос на проверку распоряжения о платеже
pay_url - адрес по которому будет направляться распоряжения на оплату услуг
status_url - адрес по которому будет направляться запрос на проверку состояния платежа
test_check_url - адрес по которому будет направляться запрос на проверку распоряжения о платежа при работе в тестовом режиме
test_pay_url - адрес по которому будет направляться распоряжения на оплату услуг в тестовом режиме
test_status_url - адрес по которому будет направляться запрос на проверку состояния платежа, при работе в тестовом режиме
packet_check – параметры запроса CHEK
packet_pay – параметры запроса PAY
Параметры packet_check и packet_pay содержат строку вида:
NUMBER={phone}\r\nAMOUNT={amount}\r\nAMOUNT_ALL={dop_kom}\r\nCOMMENT={comment}\r\n ,
Эта строка содержит описание параметров передаваемых в платежную систему.
Каждый параметр описывается следующим образом ХХХ={хххх}\r\n, где:
ХХХХ – наименование параметра отправляемого в CyberPlat;
В фигурных скобках {хххх} указывается идентификатор атрибута из ЧК, значение которого надо передать, как значение этого параметра;
«\r\n» (перевод каретки) обозначает переход к строке со следующим параметром.
Для корректного заполнения значения параметра AMOUNT (сумма переводимая оператору), необходимо использовать идентификатор «amount», тогда будет использовано значение атрибута Amount (сумма документа) из таблицы RetPUPayOneTime .
Для корректного заполнения значения параметра AMOUNT_ALL необходимо использовать идентификатор «dop_kom», значение параметра будет равно значению параметра AMOUNT, и так же будет использоваться значение атрибута Amount из таблицы RetPUPayOneTime.
Для заполнения и передачи в систему CyberPlat значений других параметров, необходимо связать параметр с конкретным дополнительным реквизитом платежа из ЧК. Для этого в фигурных скобках необходимо указать идентификатор заданный в поле «Идентификатор в ПС» соответствующего дополнительного параметра услуги (Рис. 2‑4).
Внимание. Идентификаторы «amount» и «dop_kom» заняты. Использовать их в качестве идентификаторов для дополнительных параметров услуги - нельзя.

Рис. 2‑4 Идентификатор дополнительного параметра
F Для добавления или редактирования дополнительного реквизита необходимо:
Открыть необходимую запись в справочнике «Виды услуг»;
Перейти на вкладку «Дополнительные реквизиты» справочника «Виды услуг»;
В таблице выберете запись дополнительного реквизита и двойным щелчком левой кнопки мыши откройте форму для её редактирования (Рис. 2‑4). Для создания нового дополнительного реквизита нажмите кнопку «Добавить».
Тип реквизита «Нумерованный список»
Параметры данного типа дополнительного реквизита платежа (Рис. 2‑5), заполняются следующим образом:
· В полях «Допустимые значения (русский)», «Допустимые значения (английский)» указываются значения выпадающего списка, отображаемые пользователю на русском языке или английском языке.
· В поле «Коды допустимых значений» указываются соответствующие значения передаваемые в платежную систему CyberPlat при оплате услуг.

Рис. 2‑5 Тип реквизита «Нумерованный список»
Значения должны указываться через точку с запятой. При формировании запроса в систему CyberPlat вместо значения указанного клиентом для этого параметра подставляется соответствующий код.
Подробное описание процесса создания дополнительных параметров содержится в документе «Контроли».
3.8. Обновление справочников «Виды услуг» и «Группы услуг»
Описанные далее настройки предназначены только для обновления информации предоставляемой платежной системы CyberPlat. Процесс обновления не затрагивает услуги (группы услуг) доступные для оплаты через другие системы.
Программное взаимодействие с сервером единой базы данных системы CyberPlat осуществляется посредством открытых каналов связи сети Internet с использованием протоколов семейства TCP/IP. Передача данных происходит в форме обмена сообщениями в рамках протокола прикладного уровня HTTP (RFC2068,RFC2616) с использованием SSL прослойки (HTTPS). Соединение с сервером устанавливается по порту 443.
Обмен данными с системой CyberPlat состоит из обмена двумя типами сообщений: запрос списка услуг и запрос группы услуг. При обновлении, из системы CyberPlat импортируется информация в справочники «Услуги» и «Группы услуг». Поскольку группы услуг в системе CyberPlat могут иметь подгруппы, происходит преобразование информации к структуре групп в ЧК. При необходимости обновление информации о группах услуг можно отключить.
Процесс обновления информации происходит следующим образом:
· Система «Частный Клиент» с помощью операции UpdatePUInfo периодически отправляет запрос на соответствующий сервер системы CyberPlat.
· От сервера приходит ответ в формате XML, содержащий перечень услуг (или групп услуг) системы CyberPlat.
· В системе «Частный Клиент» происходит сравнение полученных данных с записями справочника «Услуги» и «Группы услуг» относящимися к системе CyberPlat.
· При необходимости происходит добавление/изменение/удаление соответствующих записей.
При импортировании списка видов услуг Реквизиты поставщика услуги не обновляются (поля БИК банка (RecipientBankBIC), номер счета (RecipientAccount) таблицы PUTypes). При необходимости эти поля заполняются вручную.
3.8.1. Параметры обновления данных
Для настройки параметров обновления данных из платежной системы CyberPlat необходимо:
· Запустить программу Построитель (%BSSRoot%\EXE\dictman. exe)
· В Построителе необходимо раскрыть ветку «Структуры -> Конфигурации -> IFIZ -> Киберплат» и ввести необходимое значение соответствующих параметров:
o EnableUpdatePUGroups – обновление списка групп услуг. Если данный параметр отключить (FALSE), то список групп услуг системы CyberPlat обновляться не будет;
o GroupVisElements – количество услуг в группах системы CyberPlat отображаемых в ИК на главной странице раздела «Оплатить услуги».
o country - регион, для которого запрашиваются услуги и группы услуг (RU – РФ, KZ - Казахстан);
3.8.2. Автопроцедура для импорта данных из системы CyberPlat
Для отправки на сервер CyberPlat запроса на обновление списка услуг и групп услуг используется автопроцедура «Обновление справочника услуг» со следующими параметрами:
· Тип схемы – Простая операция
· Имя схемы – IFIZ
· Имя операции – UpdatePUInfo
· Тип запуска – Периодический, 3600 секунд.
4. Взаимодействие ЧК, ПС и АБС
4.1. Порядок проведения распоряжения на оплату услуг с использованием ПС
1. При подаче клиентом распоряжения на единовременную оплату услуг ЧК подает в ПС команду проверить корректность введенных клиентом данных.
2. При подтверждении ПС возможности исполнения данного распоряжения в шлюз с АБС передаётся запрос BS_R_PUPAY.
3. На основании данных из BS_R_PUPAY шлюз формирует платёжный документ в АБС.
4. После исполнения документа учётной системой банка данное распоряжение отправляется Адаптером в ПС на выполнение (При этом документ сразу получает статус «Принят ПС».)
При отказе АБС в исполнении распоряжения, распоряжение в ПС не отправляется.
5. При получении от ПС подтверждения исполнения распоряжения дальнейшая обработка прекращается, и документ считается исполненным.
6. В случае отказа ПС в проведении распоряжения, Адаптер формирует запрос к АБС на отзыв документа из учетной системы банка (если АБС поддерживает запрос BS_R_CANCEL) либо сразу присваивает документу статус «Ошибка отзыва». Дальнейшие действия с такими документами производятся вручную сотрудниками банка (либо отзываются из АБС, либо выясняется причина отказа ПС).
В случае если АБС поддерживает запрос BS_R_CANCEL, при успешном отзыве распоряжения дальнейшая обработка прекращается.

Рис. 3‑1 Схема проведения распоряжения на оплату услуг с использованием системы CyberPlat
4.2. Порядок обмена данными с сервером CyberPlat
Программное взаимодействие с платежной системой осуществляется посредством открытых каналов связи сети Internet с использованием протоколов семейства TCP/IP. Передача данных сводится к обмену сообщениями в рамках протокола прикладного уровня HTTP.
Для подачи в ПС распоряжения на оплату услуги Адаптер формирует запросы специального формата, содержащие информацию о подаваемом распоряжении, и подает их на сервер CyberPlat.
Существует три типа запросов к серверу CyberPlat:
CHECK - получение разрешения на платеж (в т. ч. проверка номера телефона на корректность).
PAY - Подача распоряжения на оплату услуги.
STATUS - Проверка состояния платежа.
В одном запросе содержится информация только об одном распоряжении на оплату услуги.
Ответ сервера содержит только информацию о распоряжении, по которому был подан запрос.
Для каждого из трех типов запросов используется свой URL. Для каждой услуги используется своя тройка адресов.
Каждый запрос имеет блок BEGIN.. END, в котором передаются все данные документа в т. ч. данные точки дилера, и блок BEGIN SIGNATURE.. END SIGNATURE с ЭЦП документа.
В ответ на запросы Адаптера сервер CyberPlat возвращает ответ, содержащий информацию со статусами распоряжений – поля RESULT и ERROR и блок BEGIN SIGNATURE .. END SIGNATURE с ЭЦП CyberPlat.
Обмен сообщениями по распоряжению завершается, когда от сервера по данному распоряжению пришел ответ с RESULT=7. Платеж считается успешно завершенным, если при этом ERROR=0.
Распоряжение в запросах идентифицируется по уникальному на определенном временном интервале «идентификатору сессии», присвоенному распоряжению Адаптером, при подаче запроса на получения разрешения на оплату услуги.
4.3. Обмен сообщениями с сервером CyberPlat
Данная глава носит ознакомительный характер.
С протоколом взаимодействия с системой CyberPlat пожно ознакомится в следующем документе - http://www. *****/download/API_CyberPlat. pdf
4.3.1. CHEK – получение разрешения на платеж
Адрес по которому будет направляется запрос на проверку распоряжения платежа определяется параметром «check_url» из записи справочника «Виды услуг», закладка «Платежные системы». Если запрос происходит в тестовом режиме, то адрес определяется параметром «test_check_url».
Параметры запроса:
SD=XXX – код дилера (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
AP=XXX – код точки приема (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
OP=XXX – код оператор (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
SESSION=XXXXXXXXXXXXXXXXXXXX – уникальный номер операции (не более 20 символов, X –латинская буква, либо цифра). Генерируется ЧК при создании запроса.
NUMBER=XXXXXXXXXX – номер телефона плательщика (X – цифра) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежная система»)
ACCOUNT= – номер лицевого счета плательщика (для мобильных операторов пустой) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежня система»)
AMOUNT=ХХXXX. XX – сумма платежа (не менее 1 рубля, в качестве разделителя используется точка) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежная система»).
AMOUNT_ALL=ХХХХХ. ХХ – полная сумма, полученная от плательщика (в качестве разделителя используется точка);
REQ_TYPE=1 – признак того, что производится проверка без дальнейшего проведения платежа. (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежная система»)
COMMENT=….. – комментарий (назначение платежа, только буквы и цифры до 64 символов). (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежная система»);
TERM_ID=ХХХХХ – фактический код точки, отправившей платеж. Используется только агрегаторами для платежей в Билайн;
PAY_TOOL=X – тип платежа. Возможные значения:
· 0 – если платеж осуществляется наличными (для Системы ЧК на данный момент не актуально);
· 1 – если платеж осуществляется со счета или карты своего банка;
· 2 – если платеж осуществляется с карты другого банка.
Пример запроса разрешения на платеж:
SM
api99
BEGIN
SD=199
AP=72
OP=990
SESSION=
NUMBER=
ACCOUNT=
AMOUNT=500.00
AMOUNT_ALL=505.00
PAY_TOOL=0
TERM_ID=12345
COMMENT=test
END
BEGIN SIGNATURE
iQBRAwkBAAAD3j2r2NwBAeevAf4nvAG4rGAyAePHkyVKTt7wffzURhOckd3ctgmG
yQkKWkXh3CLpsbrExsllVUBlO6ih8qHozk2uttXApzHXQXoO
=+pch
END SIGNATURE
Ответ на запрос содержит следующие параметры:
DATE=DD. MM. YYYY HH:MM:SS – дата и время запроса на оплату
SESSION= XXXXXXXXXXXXXXXXXXXX – уникальный номер операции
ERROR=X – код ошибки. Если ERROR = 0, то номер телефона существует и оплата возможна.
RESULT=X (0 – успех, 1 – ошибка)
OPNAME =SSSSSSSSSSSSSSSSSSSS - название домашнего оператора, которому принадлежит телефонный номер (не более 20 символов). Опциональный параметр, может не возвращаться в ответе.
ACCOUNT=XXXXXXXXXX - номер лицевого счета абонента. Опциональный параметр, может не возвращаться в ответе.
ERRMSG=SSSSSSSSSSSSSSSSSSSSSSS - расшифровка ошибки (пусто в случае удачного платежа). Опциональный параметр, может не возвращаться в ответе.
Пример ответа на запрос:
SM
0J0
BEGIN
DATE=04.07.2002 12:34:12
SESSION=
ERROR=0
RESULT=0
OPNAME= Москва
ACCOUNT=3335566
ERRMSG=
END
BEGIN SIGNATURE
iQBRAwkBAAD6tj1BJ10BAYKxAfsHlQsEFnO2k6ry++W8O8AiJuv4gT+ZVCfZHsKk
c0CbZpP/W3vkljG3xNzMLiqjbwkNuIdwR9Dq7gHmH+ZQMhbT
=LOnP
END SIGNATURE
4.3.2. PAY – распоряжение на оплату услуги
Адрес по которому будит направляться распоряжения на оплату услуг определяется параметром «pay_url» из записи справочника «Виды услуг», закладка «Платежные системы». Если запрос происходит в тестовом режиме, то адрес определяется параметром «test_ pay_url».
Параметры запроса:
SD=XXX – код дилера (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
AP=XXX – код точки приема (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
OP=XXX – код оператор (задан вкладке «Настройки филиалов» в справочнике «Платежные системы»).
SESSION=XXXXXXXXXXXXXXXXXXXX – уникальный номер операции (не более 20 символов, X –латинская буква, либо цифра).
NUMBER=XXXXXXXXXX – номер телефона плательщика (X – цифра) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежня система»)
ACCOUNT= – номер лицевого счета плательщика (для мобильных операторов пустой) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежня система»)
AMOUNT=XXХХX. XX – сумма платежа (не менее 1 рубля, в качестве разделителя используется точка) (задан в параметре «packet_check» справочника «Виды услуг», закладка «Платежня система»);
AMOUNT_ALL=ХХХХХ. ХХ – полная сумма, полученная от плательщика (в качестве разделителя используется точка);
PAY_TOOL=X – тип платежа. Возможные значения:
· 0 – если платеж осуществляется наличными (для Системы ЧК на данный момент не актуально);
· 1 – если платеж осуществляется со счета или карты своего банка;
· 2 – если платеж осуществляется с карты другого банка.
DATE=XX. XX. XXXX XX:XX:XX – дата и время (UTC) приема платежа в системе ЧК в формате DD. MM. YYYY HH:MM:SS.
Пример распоряжения на оплату услуги:
SM
api99
BEGIN
SD=199
AP=72
OP=990
SESSION=
NUMBER=
ACCOUNT=
AMOUNT=500.00
END
BEGIN SIGNATURE
iQBRAwkBAAAD3j2r2NwBAeevAf4nvAG4rGAyAePHkyVKTt7wffzURhOckd3ctgmG
yQkKWkXh3CLpsbrExsllVUBlO6ih8qHozk2uttXApzHXQXoO
=+pch
END SIGNATURE
Параметры ответа:
DATE=DD. MM. YYYY HH:MM:SS – дата и время запроса на оплату
SESSION= XXXXXXXXXXXXXXXXXXXX – уникальный номер платежа
ERROR=X – код ошибки
RESULT=X (0 – успех, 1 – ошибка)
TRANSID=XXXXX – номер транзакции. ВНИМАНИЕ! Данный параметр возвращается не для всех типов платежей.
Пример ответа:
SM
0J0
BEGIN
DATE=04.07.2002 12:34:12
SESSION=
ERROR=0
RESULT=0
TRANSID=
END
BEGIN SIGNATURE
iQBRAwkBAAD6tj1BJ10BAYKxAfsHlQsEFnO2k6ry++W8O8AiJuv4gT+ZVCfZHsKk
c0CbZpP/W3vkljG3xNzMLiqjbwkNuIdwR9Dq7gHmH+ZQMhbT
=LOnP
END SIGNATURE
4.3.3. STATUS - Проверка состояния платежа
Этот тип запроса используется только в случае возникновения транспортных ошибок при запросе на оплату, т. е. если не был получен однозначный ответ. Если на этапе платежа был получен однозначный ответ – проверка статуса не производится, т. к. результат операции уже известен.
Адрес по которому будет направляется запрос на проверку состояния платежа определяется параметром «status_url» из записи справочника «Виды услуг», закладка «Платежные системы». Если запрос происходит в тестовом режиме, то адрес определяется параметром «test_ status_url».
Параметры запроса:
SESSION=XXXXXXXXXXXXXXXXXXXX – уникальный номер платежа (не более 20 символов, X – либо латинская буква, либо цифра)
Примет запроса на проверку состояния платежа
SM
api99
BEGIN
SESSION=
END
BEGIN SIGNATURE
iQBRAwkBAAAD3j2r2NwBAeevAf4nvAG4rGAyAePHkyVKTt7wffzURhOckd3ctgmG
yQkKWkXh3CLpsbrExsllVUBlO6ih8qHozk2uttXApzHXQXoO
=+pch
END SIGNATURE
Ответ на запрос содержит следующие параметры:
DATE=DD. MM. YYYY HH:MM:SS – дата и время проверки статуса запроса на оплату
SESSION= XXXXXXXXXXXXXXXXXXXX – уникальный номер платежа
ERROR=X – код ошибки
RESULT=X – состояние платежа
1 – была только проверка номера (запрос на платеж не поступал)
3 - платеж направлен к оператору связи
7 - платеж завершен (если ERROR = 0 - то прошел)
AUTHCODE=XXXXXXXXXXX – код авторизации оператора связи. Опциональный параметр, может не возвращаться в ответе.
TRANSID=XXXXX – номер транзакции. Данный параметр возвращается не для всех типов платежей.
4.3.4. Обработка ответа на запросы
В ответ на запросы от ПС приходит сообщение с кодом выполнения запроса и кодом ошибки. Код выполнения содержится в параметре RESULT, код ошибки в параметре ERROR.
Параметр ERROR может принимать значения:
1 : Сессия с таким номером уже существует
2 : Неправильный код дилера
3 : Неправильный код точки приема
4 : Неправильный код оператора
5 : Неправильный формат кода сессии
6 : Неправильная ЭЦП
7 : Неправильный формат суммы или значение суммы вне допустимого диапазона
8 : Неправильный формат номера телефона
9 : Неправильный формат номера лицевого счета
10 : Неправильный формат документа
11 : Сессия с таким номером не существует
12 : Запрос сделан с другого IP
21 : Не хватает средств на счете дилера для проведения платежа
22 : Не прошел CyberCheck (списание средств со счета дилера)
23 : Не прошел платеж у оператора связи (нет такого телефона)
24 : Невозможно связаться с сервером оператора связи(технологический перерыв)
26 : Невозможно связаться с сервером оператора связи (технологический перерыв)
30 : Общая ошибка системы (CyberPlat)
32 : Повторный платеж в течение 60 минут с момента окончания платежа (CyberPlat)
83 : Превышена максимальная сумма платежа по точке
84 : Превышена сумма списаний за день по точке
При проведении платежа возможны следующие комбинации полей ERROR и RESULT в ответах:
Если RESULT равен пустой строке, то ERROR содержит код ошибки на запрос получения статуса платежа. Если ERROR содержит ошибку 11 – это значит, платежа не было. Надо повторять с первого шага с новым номером сессии. Все остальные значения поля ERROR говорят о том, что состояние платежа неизвестно (например, ошибка проверки подписи или сбой БД). Надо повторить попытку позднее.
Если RESULT меньше 2-х, то платежа не было. Надо повторять с первого шага с новым номером сессии.
Если RESULT больше 1-го и меньше 7-ми, то платеж все еще обрабатывается, результат неизвестен. Надо повторить попытку позднее.
Если RESULT равен 7-ми, то платеж обработан, состояние определено, можно проверять значение поля ERROR. Если ERROR равен нулю, то платеж успешно обработан. Остальные значения поля ERROR говорят об ошибке (платеж не прошел).
Платеж считается успешно завершенным только в том случае, если ERROR=0 и RESULT = 7
При получении ответа от сервера Адаптер анализирует комбинации полей ERROR и RESULT и в зависимости от их значения изменяются (или не изменяет) статусы документов:
Cтатус документа (тип запроса) | Возможные значения полей ответа сервера | Установить статус документа на …, или выполнить следующее действие… | |
Значение поля ERROR | Значение поля RESULT | ||
Принят+ | 0 | Любое | Проверен ПС |
Не 0 | Любое | Отказан ПС | |
Исполнен АБС | Пустая строка | 11 | Платежа не было. Начинаем заново. |
Пустая строка | Не равно 11 | Подтверждение ПС | |
< 2 | Любое | Платежа не было. Начинаем заново. | |
> 1 и < 7 | Любое | Подтверждение ПС | |
7 | 0 | Исполнен | |
7 | Не 0 | Отказан ПС 2 | |
Подтверждение ПС | Пустая строка | 11 | Платежа не было. Начинаем заново. |
Пустая строка | Не равно 11 | Подтверждение ПС | |
< 2 | Любое | Платежа не было. Начинаем заново. | |
> 1 и < 7 | Любое | Подтверждение ПС | |
7 | 0 | Исполнен | |
7 | Не 0 | Отказан ПС 2 | |
Отказан АБС | Запрос не подавался | Отказан АБС 2 |


