ในกรณีที่เกิดข้อผิดพลาด 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 ซึ่งบ่งชี้ว่า DPA ไม่รองรับการเรียกนี้โดยมีสาเหตุของข้อผิดพลาด SERVICE_UNAVAILABLE
- DPA จะส่งคืน 429 TOO MANY REQUESTS พร้อมสาเหตุของข้อผิดพลาด TOO_MANY_REQUESTS พร้อมส่วนหัว Retry-After ที่ระบุว่า GTAF ส่งคำขอไปยัง DPA มากเกินไป
- DPA จะแสดงข้อผิดพลาด 409 CONFLICT ซึ่งบ่งชี้ว่าคำขอไม่สามารถ ดำเนินการให้เสร็จสมบูรณ์ได้เนื่องจากขัดแย้งกับสถานะปัจจุบันของ DPA
- บริการไม่พร้อมใช้งานชั่วคราว DPA จะแสดงผล 503 SERVICE UNAVAILABLE พร้อมส่วนหัว Retry-After ที่ระบุเวลาที่สามารถลองส่งคำขอใหม่ได้
- DPA จะแสดงรหัสข้อผิดพลาด 500 INTERNAL SERVER ERROR สำหรับข้อผิดพลาดอื่นๆ ทั้งหมด ที่ไม่ได้ระบุ ERROR_CAUSE_UNSPECIFIED เป็น สาเหตุของข้อผิดพลาด
ในกรณีที่พบข้อผิดพลาดระหว่างการซื้อ รหัสข้อผิดพลาดต่อไปนี้ แสดงถึงผลลัพธ์ของธุรกรรมที่ไม่สำเร็จ
- DPA จะแสดงรหัสข้อผิดพลาด 400 BAD REQUEST ซึ่งบ่งชี้ให้ GTAF ทราบว่ารหัสแพ็กเกจที่ซื้อไม่ถูกต้อง
- DPA จะแสดงรหัสข้อผิดพลาด 402 PAYMENT REQUIRED ซึ่งระบุให้ GTAF ทราบว่า ผู้ใช้มียอดคงเหลือไม่เพียงพอที่จะทำการซื้อให้เสร็จสมบูรณ์
- DPA จะแสดงรหัสข้อผิดพลาด 409 CONFLICT ซึ่งบ่งชี้ให้ GTAF ทราบว่าแพ็กเกจ ที่จะซื้อเข้ากันไม่ได้กับผลิตภัณฑ์ที่ผู้ใช้ใช้อยู่ในปัจจุบัน ตัวอย่างเช่น หากนโยบายแพ็กเกจอินเทอร์เน็ตของผู้ให้บริการไม่อนุญาตให้ใช้แพ็กเกจแบบชำระเงินภายหลังและแบบชำระเงินล่วงหน้าร่วมกัน การพยายามซื้อแพ็กเกจแบบชำระเงินล่วงหน้าสำหรับผู้ใช้แบบชำระเงินภายหลังจะทำให้เกิดข้อผิดพลาด 409 CONFLICT
- DPA จะแสดงรหัสข้อผิดพลาด 403 FORBIDDEN ซึ่งบ่งชี้ให้ GTAF ทราบว่าธุรกรรมปัจจุบันเป็นธุรกรรมที่ซ้ำกับธุรกรรมที่ออกก่อนหน้านี้
DPA ควรแสดงสาเหตุของข้อผิดพลาดต่อไปนี้ในการตอบกลับ
- หากธุรกรรมก่อนหน้านี้ไม่สำเร็จ สาเหตุของข้อผิดพลาดจะระบุ เหตุผลที่ทำให้ไม่สำเร็จ
- หากธุรกรรมก่อนหน้าสำเร็จ ให้ใช้ DUPLICATE_TRANSACTION
- หากธุรกรรมก่อนหน้ายังอยู่ในคิว ให้ใช้ REQUEST_QUEUED