รหัสข้อผิดพลาด
เอกสารนี้ใช้กับ MA Web SDK เวอร์ชันแยกเดี่ยว 2.x
การกำหนดรหัสข้อผิดพลาดฝั่งไคลเอนต์
code ของการเรียกกลับที่ Web SDK สร้างขึ้นภายในเครื่องมี 3 ค่าดังนี้:
| Code | คำอธิบาย | คำอธิบายโดยละเอียด |
|---|---|---|
| 0 | การร้องขอสำเร็จ | การร้องขออินเทอร์เฟซสำเร็จ (message มีค่าคงที่เป็น success) |
| -1 | การร้องขอล้มเหลว | การตรวจสอบพารามิเตอร์ในเครื่องล้มเหลว, SDK ยังไม่พร้อม (ยังไม่ init / ยังไม่ได้รับ RID/EUID), เครือข่ายผิดปกติ, ไม่สามารถแยกวิเคราะห์การตอบกลับได้ หรือฝั่งเซิร์ฟเวอร์ส่งคืนการตอบกลับที่ไม่ถูกต้อง สาเหตุที่แน่ชัดดูได้จาก message ของการเรียกกลับ |
| -8 | การรวบรวมข้อมูลถูกปิดอยู่ | ตั้งแต่ 2.2.0 หลังจากเรียก สวิตช์การรวบรวมข้อมูล เพื่อปิดการรวบรวมข้อมูล อินเทอร์เฟซประเภทคุณสมบัติผู้ใช้ (setProperty, increaseProperty, addProperty, deleteProperty, removeProperty, updateProperty) จะถูกดักจับ การดำเนินการครั้งนี้จะไม่ถูกดำเนินการ และ message มีค่าคงที่เป็น data collection disabled ส่วนอินเทอร์เฟซที่ไม่มีการเรียกกลับ เช่น เหตุการณ์และ UTM จะถูกทิ้งแบบเงียบในช่วงที่ปิด และจะไม่ส่งคืนรหัสนี้ |
message ของ -1 ที่พบบ่อยซึ่งเกิดขึ้นในเครื่อง (ส่งกลับไปยังฝั่งธุรกิจเป็นข้อความต้นฉบับภาษาอังกฤษ):
| message | สถานการณ์ที่ทริกเกอร์ |
|---|---|
invalid argument: enabled must be boolean |
พารามิเตอร์ของ setDataCollectionEnabled ไม่ใช่ค่าบูลีน |
sdk hasn't registered yet, request will be cancel |
ยังไม่ได้ init ให้เสร็จสิ้น หรือ /get-rid ยังไม่สำเร็จ อินเทอร์เฟซประเภทผู้ใช้ถูกดักจับ |
MA EUID is not a valid Long |
EUID ในเครื่องขาดหายหรือไม่ถูกต้อง (โดยทั่วไปเกิดจาก /get-euid ยังไม่สำเร็จ) |
identifyAccount fail loginID and mobile are nil |
identifyAccount ได้รับออบเจ็กต์รหัสผู้ใช้ที่ว่างเปล่า (ข้อความตรงกับ v1 ทุกไบต์) |
user_id cannot be "0" / email format is invalid / phone must be E.164 format (+[1-9] followed by 1-14 digits) และอื่น ๆ |
การตรวจสอบกฎของฟิลด์รหัสผู้ใช้ล่วงหน้าล้มเหลว (กฎดูได้ที่「คู่มือ API · ตั้งค่ารหัสผู้ใช้」) |
channelId must be greater than 0 / channel values cannot be empty / channel value element cannot be empty |
การตรวจสอบพารามิเตอร์ของ setChannelValue ล้มเหลว |
userIdentity is invalid: ... |
ฟิลด์ทั้งหมดของ userIdentity ที่ส่งมาพร้อมการ init ซ้ำไม่ถูกต้อง (ตั้งแต่ 2.1.0 การ init ซ้ำด้วย AppKey อื่นจะสลับแหล่งข้อมูล และไม่ส่งคืนข้อผิดพลาดอีกต่อไป) |
network exception |
คำขอผ่านเครือข่ายล้มเหลว หรือการตอบกลับไม่ถูกต้อง |
รหัสธุรกิจฝั่งเซิร์ฟเวอร์
เมื่อฝั่งเซิร์ฟเวอร์ส่งคืนความล้มเหลวทางธุรกิจอย่างชัดเจน SDK จะไม่ย่อรวมเป็น -1 แต่จะส่ง code และข้อความของฝั่งเซิร์ฟเวอร์กลับไปตามต้นฉบับผ่านการเรียกกลับ ดังนั้นในการเรียกกลับจึงอาจพบ code ที่เป็นจำนวนบวกได้
รหัสธุรกิจฝั่งเซิร์ฟเวอร์ใช้สำหรับระบุปัญหาเท่านั้น ไม่ใช่สัญญาภายนอกของ SDK ที่คงที่ โปรดอย่าเขียนสาขาตรรกะทางธุรกิจตาม code จำนวนบวกที่เฉพาะเจาะจง ให้ใช้ code === 0 ในการตัดสินความสำเร็จอย่างเป็นเอกภาพ และเมื่อพบความล้มเหลวที่ไม่คาดคิด ให้ส่ง code และ message ต้นฉบับให้ฝ่ายสนับสนุนทางเทคนิค
เมื่อเรียก init ซ้ำ (ตั้งแต่ 2.1.0 ทุกการเรียกจะขอรับ EUID ใหม่) ความล้มเหลวในการขอรับ EUID ที่สังกัดใหม่จะส่งรหัสธุรกิจฝั่งเซิร์ฟเวอร์กลับไปตามต้นฉบับตามกฎข้างต้นเช่นกัน
ภาคผนวก: รหัสธุรกิจฝั่งเซิร์ฟเวอร์ที่พบบ่อย
ค่าต่อไปนี้ใช้เพื่ออ้างอิงในการตรวจสอบปัญหาเท่านั้น ไม่รับประกันว่าจะคงที่ตามเวอร์ชันของ SDK หรือฝั่งเซิร์ฟเวอร์:
| Code | ความหมาย |
|---|---|
| 55004 | พารามิเตอร์ทางธุรกิจไม่ถูกต้อง เช่น AppKey ของช่องทางยังไม่ได้ถูกแมปในโปรเจกต์ปัจจุบัน, channelId ไม่มีอยู่ในโปรเจกต์ปัจจุบัน, ค่าของช่องทางเท่ากับ MA RID, หรือมีการเรียก updateProperty / removeProperty กับคุณสมบัติ object_array ที่ยังไม่ได้กำหนด |
| 55100 | การลงทะเบียนผู้ใช้ล้มเหลว |
| 55101 | จำนวนรหัสผู้ใช้เกินขีดจำกัดสูงสุด |
| 55102 | มีชื่อคุณสมบัติผู้ใช้ที่ไม่ถูกต้อง |
| 55103 | ค่าคุณสมบัติผู้ใช้ว่างเปล่า |
| 55105 | ค่ารหัสผู้ใช้เกิน 256 ตัวอักษร |
| 55106 | ชื่อรหัสผู้ใช้ไม่อยู่ในขอบเขตที่รองรับ |
| 55107 | ค่ารหัสผู้ใช้ว่างเปล่า |
| 55108 | EUID ไม่ถูกต้อง เช่น maEuid และ maRid ไม่ได้เป็นของผู้ใช้ MA คนเดียวกัน |
| 55110 | คำขอถี่เกินไป โปรดลองอีกครั้งในภายหลัง |
| 55000 | ข้อผิดพลาดของระบบฝั่งเซิร์ฟเวอร์ |
| 40007 | EUID ว่างเปล่า |










