Cas d'erreur

En cas d'erreur, le DPA est censé renvoyer un code d'état HTTP ainsi qu'une réponse HTTP qui DOIT inclure un objet JSON contenant plus d'informations sur l'erreur. Le corps de la réponse d'erreur DOIT contenir une instance de ErrorResponse.

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

La réponse d'erreur DPA DOIT correspondre à ce qui suit :

  • L'utilisateur est actuellement en itinérance et la requête DPA est désactivée pour cet utilisateur. Le DPA renvoie une erreur 403 avec USER_ROAMING comme cause de l'erreur.
  • Le DPA renvoie un code d'erreur 404 NOT_FOUND indiquant à GTAF que la clé utilisateur n'est pas valide (c'est-à-dire qu'elle n'existe pas) avec INVALID_NUMBER.
  • Le DPA renvoie un code d'erreur 410 GONE avec BAD_CPID comme cause d'erreur, ce qui indique à GTAF que le client doit obtenir une nouvelle clé utilisateur si key_type=CPID et que le CPID a expiré.
  • Le DPA renvoie un code d'erreur 501 NOT_IMPLEMENTED indiquant qu'il n'accepte pas cet appel avec la cause d'erreur SERVICE_UNAVAILABLE.
  • Le DPA renvoie une erreur 429 TOO MANY REQUESTS avec la cause d'erreur TOO_MANY_REQUESTS et l'en-tête Retry-After indiquant que GTAF envoie trop de requêtes au DPA.
  • Le DPA renvoie une erreur 409 CONFLICT indiquant que la requête ne peut pas être traitée en raison d'un conflit avec l'état actuel du DPA.
  • Service momentanément indisponible. Le DPA renvoie un code 503 SERVICE UNAVAILABLE avec l'en-tête Retry-After indiquant quand une nouvelle requête peut être tentée.
  • Le DPA renvoie un code d'erreur 500 INTERNAL SERVER ERROR pour toutes les autres erreurs non spécifiées ERROR_CAUSE_UNSPECIFIED comme cause d'erreur.

En cas d'erreur lors d'un achat, les codes d'erreur suivants indiquent l'échec de la transaction :

  • Le DPA renvoie un code d'erreur 400 BAD REQUEST indiquant à GTAF que l'ID du forfait acheté n'est pas valide.
  • Le DPA renvoie un code d'erreur 402 PAYMENT REQUIRED (Paiement requis) indiquant à GTAF que l'utilisateur ne dispose pas d'un solde suffisant pour effectuer l'achat.
  • Le DPA renvoie un code d'erreur 409 CONFLICT indiquant à GTAF que le forfait à acheter n'est pas compatible avec la combinaison de produits actuelle de l'utilisateur. Par exemple, si la règle relative au forfait de données de l'opérateur n'autorise pas le mélange de forfaits postpayés et prépayés, toute tentative d'achat d'un forfait prépayé pour un utilisateur postpayé entraînera une erreur 409 CONFLICT.
  • Le DPA renvoie un code d'erreur 403 FORBIDDEN indiquant à GTAF que la transaction actuelle est un doublon d'une transaction émise précédemment. Le DPA DOIT renvoyer les causes d'erreur suivantes en réponse :
    • Si la transaction précédente a échoué, la cause de l'erreur indique la raison de l'échec.
    • Si la transaction précédente a réussi, DUPLICATE_TRANSACTION.
    • Si la transaction précédente est toujours dans la file d'attente, REQUEST_QUEUED.