Webhook: สิ่งที่คุณต้องทำเมื่อระบบแสดงรหัสสถานะ HTTP ที่ขึ้นต้นด้วย 4 (4xx) หรือ 5 (5xx)

รหัสสถานะ HTTP ในช่วง 400-499 หรือ 500-599 ที่มาจากเซิร์ฟเวอร์ของคุณหมายถึงระบบได้รับคำขอดังกล่าวแต่ไม่สามารถดำเนินการคำขอได้ ให้ลองดำเนินการดังนี้

  1. ดูข้อมูลเพิ่มเติมที่การตอบกลับจากเซิร์ฟเวอร์ของคุณในแดชบอร์ด โดยการตอบกลับอาจไม่มีข้อมูลเพิ่มเติมใดๆ ทั้งนี้ ขึ้นอยู่กับลักษณะการกำหนดค่าของเซิร์ฟเวอร์รวมถึงการออกแบบโค้ดเพื่อให้ดำเนินการกับข้อผิดพลาด

  2. ตรวจสอบข้อผิดพลาดหรือคำเตือนในบันทึกเซิร์ฟเวอร์ ข้อผิดพลาดเหล่านี้อาจช่วยให้คุณพบสาเหตุของการตอบกลับที่ผิดพลาด ซึ่งอาจเกิดจากโค้ดที่ใช้ดำเนินการ Webhook หรือปัญหาเกี่ยวกับการกำหนดค่าบนเซิร์ฟเวอร์ของคุณ

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

ดูข้อมูลโดยละเอียดเกี่ยวกับข้อผิดพลาดที่พบบ่อยบางส่วนซึ่งส่งผลให้เกิดรหัสสถานะ 4xx และ 5xx รวมถึงวิธีการแก้ไขได้ด้านล่าง

ข้อผิดพลาด: ไม่พบลายเซ็นที่ตรงกับลายเซ็นสำหรับเพย์โหลดที่คาดไว้

ข้อผิดพลาดนี้หรือข้อผิดพลาดที่คล้ายกัน (ข้อความที่ใช้อาจแตกต่างกันไป) หมายถึงขั้นตอนการยืนยันลายเซ็นของ Webhook ไม่สำเร็จ ข้อผิดพลาดนี้มักเกิดขึ้นจากสาเหตุใดสาเหตุหนึ่งต่อไปนี้

ข้อผิดพลาด: การประทับเวลาอยู่นอกเขตที่ยอมรับได้

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

ให้ลองดำเนินการดังนี้

ข้อผิดพลาดภายในของเซิร์ฟเวอร์

ข้อผิดพลาดเหล่านี้มักมีสาเหตุมาจากการที่โค้ดสร้างข้อยกเว้น ข้อผิดพลาดในการแยกวิเคราะห์ หรือการเปลี่ยนแปลงบางประเภทที่ส่งผลกับส่วนอื่นๆ

โดยส่วนใหญ่แล้ว ข้อผิดพลาดในกลุ่มนี้มักมีสาเหตุมาจากการเปลี่ยนแปลงบางประเภทที่เกิดขึ้นกับเซิร์ฟเวอร์หรือโครงสร้างพื้นฐานที่เกี่ยวข้องกับการประมวลผล Webhook โค้ดใหม่หรือโค้ดที่มีการเปลี่ยนแปลง การอัปเดตเซิร์ฟเวอร์ หรือการเปลี่ยนแปลงการกำหนดค่าอาจทำให้เกิดโหมดใหม่ที่ดำเนินการไม่สำเร็จหรือทำให้เข้ากันไม่ได้

หากคุณพบข้อผิดพลาดนี้ ให้ดูข้อมูลเพิ่มเติมจากบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ ตำแหน่งของบันทึกข้อผิดพลาดนั้นจะแตกต่างกันไปในแต่ละเซิร์ฟเวอร์ ทั้งนี้ ขึ้นอยู่กับการกำหนดค่า ระบบปฏิบัติการ ภาษาการเขียนโปรแกรมที่ใช้ รวมถึงปัจจัยอื่นๆ เราจึงไม่สามารถให้คำแนะนำที่เจาะจงได้  เราขอแนะนำให้คุณตรวจสอบทั้งบันทึกและการกำหนดค่าบันทึกข้อผิดพลาดเพื่อดูว่าคุณได้ใช้สิ่งใดต่อไปนี้ในการรับ Webhook หรือไม่