Как происходит разпознавание платежей?
Платежи распознаються в зависимости прописаного в настройках получателя параметре PAYSYS_НАЗВАНИЕ-ПЛАТЕЖНОЙ-СИСТЕМЫ_ACCOUNT_KEY в Настройка > Платежные системы > Настройки контрагента, по умолчанию распознавание происходит по параметру UID. Его можно можно изменить на следующие параметры:
- CONTRACT_ID
- LOGIN
- BILL_ID
- PHONE
- UID
Распознавание платежей в выписках происходит в зависимости от прописанного регулярного выражения в настройках получателя, или от данных, предоставляемых выпиской, происходит распознавание платежей.
Линейное распознавание
Линейное распознавание платежей по одному идентификатору. Чтобы сделать сделать распознавание по нескольким параметрам одновременно, нужно прописать параметр $conf{PAYSYS_USER_MULTI_CHECK} в файле config.pl.
Если прописано 2 индентификатора в параметре, то они будут проверяться в последовательности, в которой они прописаны, самый приоритетный будет той что прописан в получателя. Пример:
В получателя прописано UID, в параметре CONTRACT_ID и LOGIN, распознавание будет в следующей последовательности:
- UID
- CONTRACT_ID - номер договора, можно для абонентов и компании
- LOGIN
- TAX_NUMBER - ИНН, можно для абонентов и компании
- EDRPOU - ЕРДПОУ только компании
Параметр | Примеры |
---|---|
$conf{PAYSYS_USER_MULTI_CHECK} | 'CONTRACT_ID' или несколько через запятую 'CONTRACT_ID, LOGIN' |
Многоуровневое распознавание (работа с выписками)
Включить многоуровневое распознавание выписок можно с помощью опции
$conf{PAYSYS_STATEMENTS_MULTI_CHECK}='paramenter:type:regex:extract_regex:type;paramenter2:type2:regex2:extract_regex2:type2;...paramenterN:typeN:regexN:extract_regexN:typeN;';
Параметр | Значение | Пример |
---|---|---|
paramenter | Параметр по которому будет распознавание платежа | UID |
type | Тип данных, сейчас доступные INT и STR. Рекомендуется для выставления, если в базе данных тип int | INT |
regex | Регулярное выражение для проверки реально ли данное значение подходит как идентификатор абонента | \d{5,6} |
extract_regex | Регулярное выражение для обработки значения перед проверкой | \d{5,6} |
type | Тип поля, 0 пользовательськое, 1 компания | 1 |
Все следующие параметры разделяются через знак ; Приоритет распознавания начинается с первого параметра, прописанного в опции, если найдено более двух абонентов с данным идентификатором идет поиск по следующему параметру. Поиск заканчивается пока не будет найден один абонент по данному идентификатору, если не будет найден данный абонент, то платеж будет в списке как не распознан.
Разделитель слов в выписке по умолчанию регулярное выражение \s|№|\/ . Если у Вас в выписке присутствуют другие символы, которые необходимо разделять и с ними уже сверять, то нужно прописать следующую опцию:
$conf{PAYSYS_STATEMENTS_MULTI_CHECK_REGEX}='\s';