W przypadku błędu platforma DPA powinna zwrócić kod stanu HTTP wraz z odpowiedzią HTTP, która MUSI zawierać obiekt JSON z dodatkowymi informacjami o błędzie. Treść odpowiedzi o błędzie MUSI zawierać instancję ErrorResponse.
{
"errorMessage": string,
"cause": enum(ErrorCause)
}
Odpowiedź o błędzie platformy DPA MUSI być zgodna z tymi wymaganiami:
- Użytkownik jest obecnie w roamingu, a zapytanie DPA jest dla niego wyłączone. Usługa DPA zwraca błąd 403 z przyczyną USER_ROAMING.
- Platforma DPA zwraca kod błędu 404 NOT_FOUND, który informuje GTAF, że klucz użytkownika jest nieprawidłowy (tzn. nie istnieje klucz użytkownika) z kodem INVALID_NUMBER.
- DPA zwraca kod błędu 410 GONE z przyczyną błędu BAD_CPID, co oznacza dla GTAF, że klient powinien uzyskać nowy klucz użytkownika, jeśli key_type=CPID i CPID wygasł.
- DPA zwraca kod błędu 501 NOT_IMPLEMENTED, który wskazuje, że nie obsługuje tego wywołania z przyczyną błędu SERVICE_UNAVAILABLE.
- Platforma DPA zwraca kod 429 TOO MANY REQUESTS (Zbyt wiele żądań) z przyczyną błędu TOO_MANY_REQUESTS i nagłówkiem Retry-After, który wskazuje, że GTAF wysyła do platformy DPA zbyt wiele żądań.
- DPA zwraca błąd 409 CONFLICT, który wskazuje, że nie można zrealizować żądania z powodu konfliktu z bieżącym stanem DPA.
- Usługa tymczasowo niedostępna. Platforma DPA zwraca kod 503 SERVICE UNAVAILABLE z nagłówkiem Retry-After, który wskazuje, kiedy można spróbować wysłać nowe żądanie.
- W przypadku wszystkich innych nieokreślonych błędów DPA zwraca kod błędu 500 INTERNAL SERVER ERROR, a jako przyczynę błędu podaje ERROR_CAUSE_UNSPECIFIED.
W przypadku błędów napotkanych podczas zakupu te kody błędów oznaczają nieudaną transakcję:
- DPA zwraca kod błędu 400 BAD REQUEST, który informuje GTAF, że identyfikator zakupionego abonamentu jest nieprawidłowy.
- DPA zwraca kod błędu 402 PAYMENT REQUIRED, który informuje GTAF, że użytkownik nie ma wystarczających środków na koncie, aby dokonać zakupu.
- DPA zwraca kod błędu 409 CONFLICT, który informuje GTAF, że plan, który ma zostać kupiony, jest niezgodny z obecnym zestawem produktów użytkownika. Jeśli na przykład zasady dotyczące abonamentu operatora zabraniają łączenia abonamentów z płatnością z góry i z płatnością z dołu, próba zakupu abonamentu z płatnością z góry dla użytkownika abonamentu z płatnością z dołu spowoduje błąd 409 CONFLICT.
- DPA zwraca kod błędu 403 FORBIDDEN, który informuje GTAF, że bieżąca transakcja jest duplikatem wcześniej wydanej transakcji. W odpowiedzi platforma DPA POWINNA zwrócić te przyczyny błędu:
- Jeśli poprzednia transakcja zakończyła się niepowodzeniem, podaj przyczynę błędu.
- Jeśli poprzednia transakcja została zrealizowana, DUPLICATE_TRANSACTION.
- Jeśli poprzednia transakcja jest nadal w kolejce, REQUEST_QUEUED.