موارد خطا

در صورت بروز خطا، انتظار می رود DPA یک کد وضعیت HTTP را به همراه یک پاسخ HTTP که باید شامل یک شی JSON با اطلاعات بیشتر در مورد خطا باشد، بازگرداند. بدنه پاسخ به خطا باید شامل یک نمونه از ErrorResponse باشد.

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

پاسخ خطای DPA باید با موارد زیر مطابقت داشته باشد:

  • کاربر در حال حاضر در رومینگ است و پرس و جو DPA برای این کاربر غیرفعال است. DPA یک خطای 403 با USER_ROAMING به عنوان علت خطا برمی‌گرداند.
  • DPA یک کد خطای 404 NOT_FOUND را برمی‌گرداند که به GTAF نشان می‌دهد که کلید کاربر نامعتبر است (یعنی کلید کاربری موجود نیست) با INVALID_NUMBER.
  • DPA کد خطای 410 GONE را با BAD_CPID به عنوان دلیل خطا برمی‌گرداند که به GTAF نشان می‌دهد که اگر key_type = CPID و CPID منقضی شده باشد، مشتری باید یک کلید کاربر جدید دریافت کند.
  • DPA یک کد خطای 501 NOT_IMPLEMENTED را برمی‌گرداند که نشان می‌دهد از این تماس با علت خطای SERVICE_UNAVAILABLE پشتیبانی نمی‌کند.
  • DPA یک 429 TOO MANY REQUESTS با علت خطای TOO_MANY_REQUESTS را با سرآیند Retry-After برمی گرداند که نشان می دهد GTAF درخواست های زیادی به DPA می کند.
  • DPA یک خطای CONFLICT 409 را برمی‌گرداند که نشان می‌دهد به دلیل تضاد با وضعیت فعلی DPA، درخواست نمی‌تواند تکمیل شود.
  • سرویس موقتا در دسترس نیست. DPA یک SERVICE 503 NAVAILABLE را با هدر Retry-After برمی گرداند که نشان می دهد چه زمانی می توان درخواست جدیدی را انجام داد.
  • DPA یک کد خطای 500 INTERNAL SERVER ERROR را برای سایر خطاهای نامشخص ERROR_CAUSE_UNSPECIFIED به عنوان علت خطا برمی گرداند.

در صورت بروز خطا در حین خرید، کدهای خطای زیر نشان دهنده نتایج شکست خورده تراکنش است:

  • DPA کد خطای 400 BAD REQUEST را برمی گرداند که نشان می دهد شناسه طرح خریداری شده نامعتبر است.
  • DPA کد خطای 402 PAYMENT REQUIRED را برمی گرداند که به GTAF نشان می دهد که کاربر موجودی کافی برای تکمیل خرید ندارد.
  • DPA یک کد خطای CONFLICT 409 را برمی گرداند که به GTAF نشان می دهد که طرحی که باید خریداری شود با ترکیب محصول فعلی کاربر ناسازگار است. برای مثال، اگر خط‌مشی طرح داده‌های اپراتور ترکیب طرح‌های پس‌پرداخت و پیش‌پرداخت را مجاز نمی‌داند، تلاش برای خرید یک طرح پیش‌پرداخت برای کاربر پس‌پرداخت منجر به خطای CONFLICT 409 می‌شود.
  • DPA یک کد خطای 403 FORBIDDEN را برمی گرداند که به GTAF نشان می دهد که تراکنش فعلی تکراری از تراکنش صادر شده قبلی است. DPA باید دلایل خطای زیر را در پاسخ بازگرداند:
    • اگر تراکنش قبلی ناموفق بود، دلیل خطا نشان دهنده دلیل شکست است.
    • اگر تراکنش قبلی موفقیت آمیز بود، DUPLICATE_TRANSACTION.
    • اگر تراکنش قبلی هنوز در صف است، REQUEST_QUEUED.
،

در صورت بروز خطا، انتظار می رود DPA یک کد وضعیت HTTP را به همراه یک پاسخ HTTP که باید شامل یک شی JSON با اطلاعات بیشتر در مورد خطا باشد، بازگرداند. بدنه پاسخ به خطا باید شامل یک نمونه از ErrorResponse باشد.

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

پاسخ خطای DPA باید با موارد زیر مطابقت داشته باشد:

  • کاربر در حال حاضر در رومینگ است و پرس و جو DPA برای این کاربر غیرفعال است. DPA یک خطای 403 با USER_ROAMING به عنوان علت خطا برمی‌گرداند.
  • DPA یک کد خطای 404 NOT_FOUND را برمی‌گرداند که به GTAF نشان می‌دهد که کلید کاربر نامعتبر است (یعنی کلید کاربری موجود نیست) با INVALID_NUMBER.
  • DPA کد خطای 410 GONE را با BAD_CPID به عنوان دلیل خطا برمی‌گرداند که به GTAF نشان می‌دهد که اگر key_type = CPID و CPID منقضی شده باشد، مشتری باید یک کلید کاربر جدید دریافت کند.
  • DPA یک کد خطای 501 NOT_IMPLEMENTED را برمی‌گرداند که نشان می‌دهد از این تماس با علت خطای SERVICE_UNAVAILABLE پشتیبانی نمی‌کند.
  • DPA یک 429 TOO MANY REQUESTS با علت خطای TOO_MANY_REQUESTS را با سرآیند Retry-After برمی گرداند که نشان می دهد GTAF درخواست های زیادی به DPA می کند.
  • DPA یک خطای CONFLICT 409 را برمی‌گرداند که نشان می‌دهد به دلیل تضاد با وضعیت فعلی DPA، درخواست نمی‌تواند تکمیل شود.
  • سرویس موقتا در دسترس نیست. DPA یک SERVICE 503 NAVAILABLE را با هدر Retry-After برمی گرداند که نشان می دهد چه زمانی می توان درخواست جدیدی را انجام داد.
  • DPA یک کد خطای 500 INTERNAL SERVER ERROR را برای سایر خطاهای نامشخص ERROR_CAUSE_UNSPECIFIED به عنوان علت خطا برمی گرداند.

در صورت بروز خطا در حین خرید، کدهای خطای زیر نشان دهنده نتایج شکست خورده تراکنش است:

  • DPA کد خطای 400 BAD REQUEST را برمی گرداند که نشان می دهد شناسه طرح خریداری شده نامعتبر است.
  • DPA کد خطای 402 PAYMENT REQUIRED را برمی گرداند که به GTAF نشان می دهد که کاربر موجودی کافی برای تکمیل خرید ندارد.
  • DPA یک کد خطای CONFLICT 409 را برمی گرداند که به GTAF نشان می دهد که طرحی که باید خریداری شود با ترکیب محصول فعلی کاربر ناسازگار است. برای مثال، اگر خط‌مشی طرح داده‌های اپراتور ترکیب طرح‌های پس‌پرداخت و پیش‌پرداخت را مجاز نمی‌داند، تلاش برای خرید یک طرح پیش‌پرداخت برای کاربر پس‌پرداخت منجر به خطای CONFLICT 409 می‌شود.
  • DPA یک کد خطای 403 FORBIDDEN را برمی گرداند که به GTAF نشان می دهد که تراکنش فعلی تکراری از تراکنش صادر شده قبلی است. DPA باید دلایل خطای زیر را در پاسخ بازگرداند:
    • اگر تراکنش قبلی ناموفق بود، دلیل خطا نشان دهنده دلیل شکست است.
    • اگر تراکنش قبلی موفقیت آمیز بود، DUPLICATE_TRANSACTION.
    • اگر تراکنش قبلی هنوز در صف است، REQUEST_QUEUED.