Случаи ошибок

В случае ошибки DPA должен вернуть код статуса HTTP вместе с HTTP-ответом, который ОБЯЗАТЕЛЬНО должен включать JSON-объект с дополнительной информацией об ошибке. Тело ответа об ошибке ОБЯЗАТЕЛЬНО должно содержать экземпляр ErrorResponse .

{
  "errorMessage": string,
  "cause": enum(ErrorCause)
}

Ответ об ошибке DPA ДОЛЖЕН соответствовать следующему:

  • Пользователь в настоящее время находится в роуминге, и запрос DPA для него отключён. DPA возвращает ошибку 403 с указанием USER_ROAMING в качестве причины.
  • DPA возвращает код ошибки 404 NOT_FOUND, указывающий GTAF, что ключ пользователя недействителен (т. е. несуществующий ключ пользователя ) с INVALID_NUMBER.
  • DPA возвращает код ошибки 410 GONE с BAD_CPID в качестве причины ошибки, указывая GTAF, что клиент должен получить новый ключ пользователя, если key_type = CPID и срок действия CPID истек.
  • DPA возвращает код ошибки 501 NOT_IMPLEMENTED, указывающий на то, что он не поддерживает этот вызов с причиной ошибки SERVICE_UNAVAILABLE.
  • DPA возвращает ошибку 429 TOO MANY REQUESTS с причиной TOO_MANY_REQUESTS и заголовком Retry-After, указывающим на то, что GTAF отправляет слишком много запросов к DPA.
  • DPA возвращает ошибку 409 CONFLICT, указывающую на то, что запрос не может быть выполнен из-за конфликта с текущим состоянием DPA.
  • Служба временно недоступна. DPA возвращает код 503 SERVICE UNAVAILABLE с заголовком Retry-After, указывающим, когда можно попытаться отправить новый запрос.
  • DPA возвращает код ошибки 500 INTERNAL SERVER ERROR для всех остальных неуказанных ошибок ERROR_CAUSE_UNSPECIFIED в качестве причины ошибки.

В случае возникновения ошибок во время покупки следующие коды ошибок будут указывать на неудавшиеся результаты транзакции:

  • DPA возвращает код ошибки 400 BAD REQUEST, указывающий GTAF, что приобретенный идентификатор плана недействителен.
  • DPA возвращает код ошибки 402 PAYMENT REQUIRED, сообщающий GTAF, что у пользователя недостаточно средств для завершения покупки.
  • DPA возвращает код ошибки 409 CONFLICT, указывающий GTAF на то, что приобретаемый тарифный план несовместим с текущим набором услуг пользователя. Например, если политика тарифного плана оператора запрещает совместное использование постоплатных и предоплатных тарифов, попытка приобрести предоплатный тариф для пользователя с постоплатной системой обслуживания приведёт к ошибке 409 CONFLICT.
  • DPA возвращает код ошибки 403 FORBIDDEN, указывающий GTAF на то, что текущая транзакция является дубликатом ранее выполненной транзакции. DPA ДОЛЖЕН возвращать в ответ следующие причины ошибок:
    • Если предыдущая транзакция завершилась неудачей, то ошибка указывает причину сбоя.
    • Если предыдущая транзакция была успешной, DUPLICATE_TRANSACTION.
    • Если предыдущая транзакция все еще находится в очереди, REQUEST_QUEUED.