В статье описаны коды ошибок которые может вернуть биллинг при обращении на обработчики платёжных систем.
asr_billing
общие
51 - Не указан параметр для поиска абонента
52 - User is deleted
52 - User or group is disabled
53 - Абонент не найден
71 - неизвестный оператор
73 - Неизвестная команда
99 - act_pay error (неизвестная ошибка)
создание платежа ADD
0 - Создан платеж
0 - Платеж уже создан
отмена платежа CANCEL
0 - Проведено успешно
102 - Транзакции не существует
202 - Транзакция уже отменена
проверка платежа CHECK
0 - SUCCESS
102 - Транзакции не существует
проведение платежа PAY
0 - ACCEPTED
20 - Платеж уже проведен, возвращаем старые данные
20 += Сумма дублирующего платежа не совпадает с оригиналом
20 += Дата дублирующего платежа не совпадает с оригиналом
52 - В платеже не указана сумма
81 - Невозможно получить старые данные
asr_fiscal
общие
0 - коды биллинга 0, 20, 102 - OК
1 - код биллинга 30 - временная ошибка
4 - коды биллинга 50, 51 - неверный формат поиска абонента
5 - код биллинга 53 - абонент не найден
7 - код биллинга 52 - платежи не принимаются
300 - No results from DB
Обычно код из биллинга идёт в общий обработчик фискала, а после ещё в обработчик платежки |
Любые платежные системы использующие ОСМП протокол
case 0: if ($this->config['osmp']['show_abonent_fio'][0]) { $msg = 'Абонент найден. ' . $abonent_name; } else { $msg = 'OK'; } break; case 1: $msg = 'Временная ошибка. Повторите запрос позже'; break; case 4: $msg = 'Неверный формат идентификатора абонента'; break; case 5: $msg = 'Идентификатор абонента не найден (Ошиблись номером)'; break; case 7: $msg = 'Прием платежа запрещен провайдером'; break; case 8: $msg = 'Прием платежа запрещен по техническим причинам'; break; case 79: $msg = 'Счет абонента не активен'; break; case 90: $msg = 'Проведение платежа не окончено'; break; case 241: $msg = 'Сумма слишком мала'; break; case 242: $msg = 'Сумма слишком велика'; break; case 243: $msg = 'Невозможно проверить состояние счета'; break; default: $msg = 'Другая ошибка провайдера'; break; }
case 0: case 20: case 102: $msg = 'OK'; $obj['res'] = 0; break; case 30: $msg = 'Временная ошибка. Повторите запрос позже'; $obj['res'] = 1; break; case 50: case 51: $msg = 'Неверный формат идентификатора абонента'; $obj['res'] = 4; break; case 53: $msg = 'Идентификатор абонента не найден (Ошиблись номером)'; $obj['res'] = 5; break; case 52: $msg = 'Прием платежа запрещен провайдером'; $obj['res'] = 7; break; case 8: $msg = 'Прием платежа запрещен по техническим причинам'; break; case 79: $msg = 'Счет абонента не активен'; break; case 90: $msg = 'Проведение платежа не окончено'; break; case 241: $msg = 'Сумма слишком мала'; break; case 242: $msg = 'Сумма слишком велика'; break; case 243: $msg = 'Невозможно проверить состояние счета'; break; default: $msg = 'Другая ошибка провайдера'; break; }
А некоторые обработчики платежек сразу обрабатывают коды биллинга
QIWI
0 - OK
4 - какая-то другая ошибка из биллинга
3 - нет ответа от биллинга