오류 사례

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

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

DPA 오류 응답은 다음과 일치해야 합니다.

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

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

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