Коды ошибок платежных систем

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (50)

просмотр истории страницы
В статье описаны коды ошибок которые может вернуть биллинг при обращении на обработчики платёжных систем.
В статье описана схема взаимодействия asr_fiscal с asr_billing и коды ошибок возвращаемые биллингом и обработчиками платёжных систем.

h2. Схема взаимодействия asr_fiscal с asr_billing

При обращении на обработчик платёжной системы, допустим http://169.254.14.44:1444/osmp.php, он передаёт данные в общий для всех платёжных систем интерфейс pay_work, откуда они отправляются в asr_billing для регистрации платежа. Получив ответ с кодом состояния операции от биллинга, pay_work обрабатывает его и возвращает в обработчик платёжной системы (в примере это osmp.php) где он может быть модифицирован - в зависимости от требований протокола.
Ниже описаны возможные ответы биллинга обработчику pay_work и измененные коды для конкретных платежных систем.

h2. asr_billing

h3. общие
h3. Общие для всех операций

|| Ответ биллинга || Описание ||
| 51 - | Не указан параметр для поиска абонента |
| 52 - | User is deleted |
| 52 - | User or group is disabled |
| 53 - | Абонент не найден |
71 - неизвестный оператор
73 - Неизвестная команда
| 71 | неизвестный оператор |
| 73 | Неизвестная команда |
| 99 - | act_pay error (неизвестная ошибка) |

h3. сСоздание платежа ADD

0 - Создан платеж
|| Ответ биллинга || Описание ||
| 0 | Создан платеж |
| 0 - | Платеж уже создан |

h3. оОтмена платежа CANCEL

0 - Проведено успешно
|| Ответ биллинга || Описание ||
| 0 | Проведено успешно |
| 102 - | Транзакции не существует |
| 202 - | Транзакция уже отменена |

h3. пПроверка платежа CHECK

0 - SUCCESS
|| Ответ биллинга || Описание ||
| 0 | SUCCESS |
| 102 - | Транзакции не существует |

h3. пПроведение платежа PAY

0 - ACCEPTED
|| Ответ биллинга || Описание ||
| 0 | ACCEPTED |
| 20 - | Платеж уже проведен, возвращаем старые данные |
| 20 += | Сумма дублирующего платежа не совпадает с оригиналом |
| 20 += | Дата дублирующего платежа не совпадает с оригиналом |
| 52 - | В платеже не указана сумма |
| 81 - | Невозможно получить старые данные |

h2. asr_fiscal

h2. общие
h3. Общие для всех платежных систем

0 - коды биллинга 0, 20, 102 - OК
1 - код биллинга 30 - временная ошибка
4 - коды биллинга 50, 51 - неверный формат поиска абонента
5 - код биллинга 53 - абонент не найден
7 - код биллинга 52 - платежи не принимаются
|| Ответ биллинга || Переопределяется || Описание ||
| 0, 20, 102 | 0 | OК |
| 30 | 1 | Временная ошибка |
| 50, 51 | 4 | Неверный формат поиска абонента |
| 53 | 5 | Абонент не найден |
| 52 | 7 | Платежи не принимаются |
| 300 - | \- | No results from DB |

{info}Обычно код из биллинга идёт в общий обработчик фискала, а после ещё в обработчик платежки{info}
h3. ОСМП

[Любые платежные системы использующие ОСМП протокол|http://docs.carbonsoft.ru/49087103]
{code} 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;
}
{code}

|| Ответ биллинга || Отправляемое описание ||
| 0 | В зависимости от [опции "Отображать ФИО абонента при платеже"|CarbonBilling:Платежные системы. Общее]:
* Включена: Абонент найден. ФИО абонента
* Выключена: OK |
| 1 | Временная ошибка. Повторите запрос позже |
| 4 | Неверный формат идентификатора абонента |
| 5 | Идентификатор абонента не найден (Ошиблись номером) |
| 7 | Прием платежа запрещен провайдером |
| 8 | Прием платежа запрещен по техническим причинам |
| 79 | Счет абонента не активен |
| 90 | Проведение платежа не окончено |
| 241 | Сумма слишком мала |
| 242 | Сумма слишком велика |
| 243 | Невозможно проверить состояние счета |
| Прочее | Другая ошибка провайдера |

h3. Сбербанк ОСМП

[Сбербанк (ОСМП)|http://docs.carbonsoft.ru/50364716]

{code} 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;
}
{code}
|| Ответ биллинга || Переопределяется || Отправляемое описание ||
| 0, 20 | \- | OK |
| 102 | 0 | OK |
| 30 | 1 | Временная ошибка. Повторите запрос позже |
| 50 | \- | \- |
| 51 | 4 | Неверный формат идентификатора абонента |
| 53 | 5 | Идентификатор абонента не найден (Ошиблись номером) |
| 52 | 7 | Прием платежа запрещен провайдером |
| 8 | \- | Прием платежа запрещен по техническим причинам |
| 79 | \- | Счет абонента не активен |
| 90 | \- | Проведение платежа не окончено |
| 241 | \- | Сумма слишком мала |
| 242 | \- | Сумма слишком велика |
| 243 | \- | Невозможно проверить состояние счета |
| Прочее | \- | Другая ошибка провайдера |

А некоторые обработчики платежек сразу обрабатывают коды биллинга
h3. QIWI
QIWI сразу обрабатывает коды биллинга
QIWI
0 - OK
4 - какая-то другая ошибка из биллинга
3 - нет ответа от биллинга
|| Ответ биллинга || Отправляемое описание ||
| 0 | OK |
| 3 | Нет ответа от биллинга |
| 4 | Какая-то другая ошибка из биллинга |