錯誤案例

如果發生錯誤,DPA 應會傳回 HTTP 狀態碼,以及 HTTP 回應,其中「必須」包含內含錯誤的詳細資訊的 JSON 物件。錯誤回應主體「必須」包含 ErrorResponse 的執行個體。

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

DPA 錯誤回應「必須」對應下列項目:

  • 使用者目前正在漫遊,且已停用這位使用者的 DPA 查詢。DPA 會傳回 403 錯誤,原因為 USER_ROAMING。
  • DPA 會傳回 404 NOT_FOUND 錯誤代碼,向 GTAF 指出使用者金鑰無效 (即不存在的使用者金鑰),以及 INVALID_NUMBER。
  • key_type = CPID 且 CPID 過期時,DPA 會傳回含有 BAD_CPID 的 410 GONE 錯誤代碼,以便向 GTAF 指出用戶端應取得新的使用者金鑰
  • DPA 傳回 501 NOT_IMPLEMENTED 錯誤代碼,表示這個呼叫不支援 SERVICE_UNAVAILABLE 錯誤原因。
  • DPA 會傳回含有 429 TOO ` REQUESTS 的 REQUESTS 錯誤,使用 TOO_MANY_REQUESTS 錯誤導致 GTAF 向 DPA 發出太多要求。
  • DPA 傳回 409 CONFLICT 錯誤,表示要求與 DPA 目前的狀態發生衝突而無法完成。
  • 暫時無法使用服務,DPA 會傳回 503 SERVICE UNAVAILABLE ,以及「Try-after」標頭,指出何時可以嘗試新要求。
  • 所有其他錯誤的不明錯誤 ERROR_CAUSE_UNSPECIFIED 都會傳回 DPA 的 500 內部錯誤錯誤錯誤代碼。

如果購買過程中發生錯誤,下列錯誤代碼代表失敗的交易結果:

  • DPA 會傳回 400 BAD REQUEST 錯誤代碼,告知 GTAF 所購買方案的 ID 無效。
  • DPA 會傳回 402 PAYMENT REQUIRED 錯誤代碼,指出 GTAF 的使用者沒有足夠餘額完成購買交易。
  • DPA 傳回 409 CONFLICT 錯誤代碼,向 GTAF 指出要購買的方案與使用者目前的產品組合不相容。舉例來說,如果電信業者數據方案政策禁止混合使用後付方案和預付方案,嘗試為後付使用者購買預付方案會導致 409 CONFLICT 錯誤。
  • DPA 會傳回 403 FORBIDDEN 錯誤代碼,表示 GTAF 目前的交易與先前核發的交易重複。DPA 應在回應中傳回下列錯誤原因:
    • 如果先前的交易失敗,系統會指示錯誤原因。
    • 如果先前的交易成功,DUPLICATE_TRANSACTION
    • 如果先前的交易仍在佇列中,REQUEST_QUEUED,