← บทความทั้งหมด
บทช่วยสอน

ลบบัญชีรับส่งข้อความ UnifyPort: จัดการ 202 และ 204 ให้ถูกต้อง

การลบบัญชีรับส่งข้อความใน UnifyPort อาจได้ 204 No Content หรือ 202 Accepted ระบบแบบโควตาส่ง 204 เมื่อลบเสร็จ ส่วนแบบกระเป๋าเงินส่ง 202 เมื่อรับคำขอแล้ว โดยการจัดการทรัพยากรฝั่งผู้ให้บริการและการคืนเงินที่อาจมีจะดำเนินต่อแบบอะซิงโครนัส เมื่อได้ 202 ให้บันทึก operation_id แล้วตรวจสอบงานด้านการเรียกเก็บเงิน การที่บัญชีหายจากรายการไม่ได้ยืนยันว่าทุกขั้นตอนหรือการคืนเงินเสร็จแล้ว

ประเด็นสำคัญ

  • ใช้การลบเมื่อเลิกใช้งานบัญชีนั้น ไม่ใช่เพื่อหยุดการเชื่อมต่อชั่วคราว
  • แยกตามสถานะ HTTP ก่อนอ่าน JSON เพราะ 204 ไม่มีเนื้อหาตอบกลับ
  • เก็บรหัสงานจาก 202 แยกจากรายการบัญชี
  • REVIEW หมายถึงยังไม่ยืนยัน ไม่ใช่หลักฐานการคืนเงิน

ตรวจสอบก่อนว่าต้องลบบัญชีจริงหรือไม่

API หยุดรันไทม์หยุดกระบวนการเชื่อมต่อโดยไม่ลบบัญชี หากต้องการหยุดเชื่อมต่อชั่วคราว ให้เลือกการควบคุมนี้ เมื่อต้องนำบัญชีที่ยังเก็บไว้กลับมาออนไลน์ ให้ใช้คู่มือกู้คืนรันไทม์ แทนการใช้การลบเป็นเครื่องมือรีสตาร์ต

หากต้องบำรุงรักษาเฉพาะ CRM หรือเวิร์กเกอร์ AI แต่ยังต้องรับข้อความ LINE ต่อไป อาจไม่จำเป็นต้องหยุดรันไทม์หรือลบบัญชีเลย บทเปรียบเทียบการบำรุงรักษา Webhookอธิบายการตรวจสอบลายเซ็นและเก็บเหตุการณ์ต่อเนื่องขณะพักการประมวลผลปลายทาง

บทความนี้กล่าวถึงทรัพยากรบัญชีใน UnifyPort ไม่ใช่การปิดบัญชี LINE, Telegram หรือ WhatsApp ของผู้ใช้โดยตรง และไม่ใช่การลบข้อมูล CRM หรือยกเลิกงานที่เวิร์กเกอร์รับไปแล้ว

อ่านผลตามข้อกำหนดการลบ

เอกสาร Delete accountกำหนด DELETE /v1/accounts/{account_id} และผลสำเร็จสองรูปแบบ:

ผลตอบกลับความหมายตามเอกสารสิ่งที่แอปควรทำ
204 No Contentการลบแบบโควตาเสร็จแล้วไม่อ่าน JSON และเก็บส่วนหัวเพื่อวิเคราะห์ปัญหา
202 Acceptedรับการลบแบบกระเป๋าเงินแล้ว งานจัดการทรัพยากรและการคืนเงินที่อาจมียังดำเนินต่อเก็บ data.operation_id และสอบถามงานแยกต่างหาก
หมดเวลาหรืออ่านผลไม่ได้ไคลเอนต์ยังยืนยันผลไม่ได้คงสถานะไม่แน่นอนและตรวจสอบก่อนสั่งเปลี่ยนแปลงอีกครั้ง

สิ่งนี้สอดคล้องกับ ความหมายของ DELETE ใน RFC 9110: การรับคำขอไม่เหมือนกับการลบที่ดำเนินการแล้วและไม่มีเนื้อหาให้ส่งกลับ อย่าแสดงทั้งสองกรณีว่า “ลบและคืนเงินครบแล้ว”

ข้อกำหนดรายการบัญชีระบุว่าบัญชีหายจากรายการเมื่อการลบแบบโควตาเสร็จ หรือเมื่อการลบแบบกระเป๋าเงินได้รับการยอมรับ ดังนั้นการมองเห็นบัญชีในรายการจึงไม่ใช่ตัวติดตามความเสร็จสิ้นของงานอะซิงโครนัส

บันทึกผลก่อนเอาแถวบัญชีออกจากหน้าจอ

ข้อแนะนำในระดับแอปคือเก็บบริบทเวิร์กสเปซที่เลือก account_id ผู้ให้บริการ การยืนยันจากผู้ดำเนินการ และเวลาส่งคำขอ ข้อมูลเหล่านี้ไม่ใช่ฟิลด์ API เพิ่มเติม หยุดสร้างงานใหม่สำหรับบัญชีนี้ในระบบของคุณ และกำหนดวิธีจัดการงานที่กำลังทำอยู่ การตั้งเงื่อนไขในแอปไม่ได้รับประกันว่าจะยกเลิกคำขอส่งข้อความที่ส่งไปแล้วได้

ตัวอย่าง Node.js นี้ลองลบเพียงครั้งเดียว ให้ส่งรหัสบัญชีที่ตรวจสอบแล้วและ API Key ฝั่งเซิร์ฟเวอร์เข้ามา โค้ดไม่มีการลองซ้ำอัตโนมัติและยังไม่ได้ทำส่วนจัดเก็บถาวร

export async function deleteMessagingAccount(accountId, apiKey) {
  const response = await fetch(
    `https://api.unifyport.ai/v1/accounts/${encodeURIComponent(accountId)}`,
    { method: 'DELETE', headers: { 'X-Api-Key': apiKey } }
  );
  const requestId = response.headers.get('X-Request-Id');

  if (response.status === 204) {
    return { httpStatus: 204, requestId };
  }

  const body = await response.json();
  if (response.status === 202 && body.data?.operation_id) {
    return { httpStatus: 202, requestId, operation: body.data };
  }
  throw new Error(`Deletion needs reconciliation; HTTP ${response.status}`);
}

ชื่อ httpStatus, requestId และ operation เป็นชื่อภายในแอป ไม่ใช่ฟิลด์ตอบกลับใหม่ของ UnifyPort ให้บันทึกผลอย่างถาวรก่อนเอาแถวบัญชีออก ผู้เรียกฟังก์ชันต้องจัดการข้อผิดพลาดเครือข่าย การอ่าน JSON และผลที่ไม่คาดคิด โดยไม่เปลี่ยนเป็น “ลบเสร็จ” เงียบ ๆ เก็บรายละเอียดข้อผิดพลาดที่ปกปิดข้อมูลลับแล้วไว้ตรวจสอบ

ติดตามรหัสงาน ไม่ใช่บัญชีที่หายไป

สำหรับ 202 ให้ใช้รหัสที่บันทึกไว้กับ Get account billing operation: GET /v1/account-operations/{operation_id} โดยใช้ API Key ของเวิร์กสเปซเดียวกัน

ตัวอย่างการรับคำขอลบในเอกสารมี operation_id, kind: DELETE, state: PENDING และ account_id เอกสารสอบถามงานยังแสดง state: REVIEW คู่กับ last_error_code: cleanup_unconfirmed ด้วย REVIEW หมายถึงยังไม่ยืนยัน และไม่พิสูจน์ว่าคืนเงินแล้ว หน้าจอควรสะท้อนความไม่แน่นอนนี้แทนการแสดงผลสำเร็จ

เก็บบันทึกการตรวจสอบงานแยกต่างหาก เพื่อไม่ให้ลิงก์ติดตามหายเมื่อบัญชีถูกนำออกจากตัวเลือก กำหนดขอบเขตการสอบถามซ้ำและเงื่อนไขส่งต่อปัญหาให้ทีมดูแล บทความนี้ไม่ได้รับประกันเวลาที่จะเสร็จหรือจำนวนเงินคืน หากผลครั้งแรกสูญหายและไม่ได้เก็บรหัสงาน อย่าสร้างรหัสจาก request_id หรือสมมติว่าการอ่านรายการบัญชีจะกู้รหัสดังกล่าวได้ ให้เก็บรหัสบัญชี เวลา และข้อมูลวิเคราะห์ไว้ตรวจสอบ

สำหรับ 204 ที่ไม่มีเนื้อหา รหัสวิเคราะห์ปัญหาอยู่ในส่วนหัว X-Request-Id ดูคู่มือติดตาม Request IDเพื่อแยกการวิเคราะห์คำขอออกจากการติดตามงานธุรกิจ

การตรวจรับและคำถามที่พบบ่อย

ก่อนเปิดปุ่มลบ ให้ทดสอบว่า 204 ไม่เรียกการอ่าน JSON, รหัสงานของ 202 ยังอยู่หลังโหลดหน้าใหม่ และ REVIEW ยังคงแสดงเป็นเรื่องที่ยังไม่ยุติ เมื่อหมดเวลาควรสร้างบันทึกตรวจสอบ ไม่ใช่สร้างบัญชีใหม่อัตโนมัติหรือลบซ้ำต่อเนื่อง

หยุดรันไทม์แล้วบัญชีจะถูกลบหรือไม่?

ไม่ การหยุดรันไทม์เก็บบัญชีไว้ เอกสารวงจรชีวิตบัญชีแยกสถานะการยืนยันสิทธิ์กับสถานะการเชื่อมต่อออกจากกันเช่นกัน

202 หมายถึงลบไม่สำเร็จหรือไม่?

ไม่ใช่ หมายถึงรับการลบแบบอะซิงโครนัสในระบบกระเป๋าเงินแล้ว แต่ไม่ได้ยืนยันว่าทุกขั้นตอนที่เกี่ยวข้องเสร็จสิ้น

บัญชีหายจากรายการแปลว่าคืนเงินแล้วหรือไม่?

ไม่ บัญชีแบบกระเป๋าเงินหายจากรายการตั้งแต่รับคำขอลบ ต้องสอบถามงานด้านการเรียกเก็บเงิน อย่าอนุมานผลทางการเงินจากรายการบัญชีหรือ REVIEW

ขั้นตอนถัดไปและแหล่งอ้างอิง

ทำทั้งสองสาขาการตอบกลับตาม Delete account ก่อนเชื่อมปุ่มลบจริง ข้อมูลแอปและนโยบายเก็บรักษาต้องจัดการแยกกัน API นี้ไม่ใช่กระบวนการล้างข้อมูลทั่วไป

ตรวจสอบแหล่งข้อมูลเมื่อ 2026-10-30:

UnifyPort API

เปลี่ยนการเชื่อมต่อข้อความให้เป็น pipeline ผลิตภัณฑ์ที่เสถียร

เริ่มจากการส่งผ่าน API เดียว แล้วส่งข้อความขาเข้าทั้งหมดกลับสู่ระบบธุรกิจของคุณด้วย event มาตรฐาน