오류 사례

오류가 발생한 경우 DPA는 오류에 관한 자세한 정보가 포함된 JSON 객체를 포함해야 하는(MUST) HTTP 응답과 함께 HTTP 상태 코드를 반환해야 합니다. 오류 응답 본문에는 ErrorResponse 인스턴스가 포함되어야 합니다(MUST).

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

DPA 오류 응답은 다음을 충족해야 합니다(MUST).

  • 사용자가 현재 로밍 중이며 이 사용자에 대해 DPA 쿼리가 사용 중지되어 있습니다. DPA는 오류 원인으로 USER_ROAMING과 함께 403 오류를 반환합니다.
  • DPA는 GTAF에 사용자 키가 잘못되었음 (즉, 존재하지 않는 사용자 키)을 나타내는 404 NOT_FOUND 오류 코드를 INVALID_NUMBER와 함께 반환합니다.
  • DPA는 오류 원인으로 BAD_CPID와 함께 410 GONE 오류 코드를 반환하여 key_type=CPID이고 CPID가 만료된 경우 클라이언트가 새 사용자 키를 가져와야 함을 GTAF에 나타냅니다.
  • DPA는 SERVICE_UNAVAILABLE 오류 원인으로 이 호출을 지원하지 않음을 나타내는 501 NOT_IMPLEMENTED 오류 코드를 반환합니다.
  • DPA는 GTAF가 DPA에 너무 많은 요청을 하고 있음을 나타내는 Retry-After 헤더와 함께 TOO_MANY_REQUESTS 오류 원인과 함께 429 TOO MANY REQUESTS를 반환합니다.
  • DPA는 DPA의 현재 상태와 충돌하므로 요청을 완료할 수 없음을 나타내는 409 CONFLICT 오류를 반환합니다.
  • 서비스가 일시 중지되었습니다. DPA는 새 요청을 시도할 수 있는 시점을 나타내는 Retry-After 헤더와 함께 503 SERVICE UNAVAILABLE을 반환합니다.
  • DPA는 다른 모든 지정되지 않은 오류에 대해 오류 원인으로 500 INTERNAL SERVER ERROR 오류 코드 ERROR_CAUSE_UNSPECIFIED를 반환합니다.

구매 중에 오류가 발생한 경우 다음 오류 코드는 거래 실패 결과를 나타냅니다.

  • DPA는 구매한 요금제 ID가 잘못되었음을 GTAF에 나타내는 400 잘못된 요청 오류 코드를 반환합니다.
  • DPA는 사용자에게 구매를 완료할 잔액이 충분하지 않음을 GTAF에 나타내는 402 PAYMENT REQUIRED 오류 코드를 반환합니다.
  • DPA는 구매할 요금제가 사용자의 현재 제품 조합과 호환되지 않음을 GTAF에 나타내는 409 CONFLICT 오류 코드를 반환합니다. 예를 들어 이동통신사 데이터 요금제 정책에서 후불 요금제와 선불 요금제를 혼합하는 것을 허용하지 않는 경우 후불 사용자가 선불 요금제를 구매하려고 하면 409 CONFLICT 오류가 발생합니다.
  • DPA는 GTAF에 현재 거래가 이전에 발급된 거래의 중복임을 나타내는 403 FORBIDDEN 오류 코드를 반환합니다. DPA는 응답에서 다음 오류 원인을 반환해야 합니다(SHOULD).
    • 이전 트랜잭션이 실패한 경우 실패 이유를 나타내는 오류 원인입니다.
    • 이전 거래가 성공한 경우 DUPLICATE_TRANSACTION
    • 이전 트랜잭션이 아직 대기열에 있는 경우 REQUEST_QUEUED입니다.