Logo Site EngageLab Full Black
ติดต่อฝ่ายขาย

รหัสข้อผิดพลาด

เอกสารนี้ใช้กับ 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 ว่างเปล่า
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย