IOSOR ความรู้

ลำดับเหตุการณ์เทียบกับการบันทึกบัญชีแยกประเภท

เหตุการณ์ DLR และ MO ที่มาผิดลำดับต้องไม่ทำลายกฎการหักเงินล่วงหน้า — ลำดับการมาถึงไม่ใช่กฎหมายเรื่องเงิน

เครือข่ายส่งการเรียกกลับมาไม่เรียงลำดับ DLR ที่มาถึงช้า, MO ที่มาเร็ว, หรือการสลับสถานะก่อนการชำระบัญชีต้องไม่สร้างการหักเงินครั้งที่สองหรือเขียนทับแถวที่ชำระแล้ว หน้าตานี้คือ สัญญาการเรียงลำดับการโพสต์: กฎบัญชีแยกประเภทอยู่รอดแม้มีการจัดเรียงใหม่ — ไม่ใช่คู่มือระบุตัวตนและไม่ใช่เรียงความการเรียกเก็บเงิน MO เทียบกับ MT.

ลำดับการมาถึงไม่ใช่กฎหมายบัญชีแยกประเภท

การมาถึงผ่าน HTTP เป็นอุบัติเหตุทางขนส่ง เงินจะถูกโพสต์ภายใต้ ระงับ → ชำระ → อัปเดตผลลัพธ์ — ไม่ใช่ «การเรียกกลับใดๆ ที่มาถึงทีหลัง» การตรวจสอบแบบนุ่มนวล USD 1,000/เดือน ถือว่าการจัดเรียงใหม่เป็นเหตุการณ์ทางการเงินเมื่อผลิตภัณฑ์แสดงความสำเร็จในขณะที่บัญชีแยกประเภทเคลื่อนไหวสองครั้ง USD 20 พิสูจน์ว่า DLR ล่าช้าที่ถูกบังคับจะไม่เปิดการหักเงินคู่ขนาน การเล่นซ้ำ ID เดียวกัน: Webhook ที่ซ้ำกันต้องไม่สร้างการหักเงินครั้งที่สอง. หน้าตานี้เป็นเจ้าของ เหตุการณ์ที่แตกต่างกัน, ลำดับที่ผิด.

ลักษณะของเหตุการณ์นอกลำดับ

รูปแบบการมาถึง การโพสต์ที่ปลอดภัย ปฏิกิริยาที่ไม่ปลอดภัย
DLR ก่อนชำระ รอดำเนินการ; ชำระครั้งเดียวภายใต้ระงับ หักเงินจาก DLR อย่างเดียว
ล้มเหลวแล้วส่งสำเร็จ อัปเดตผลลัพธ์ในที่เดิม ชาร์จครั้งที่สองสำหรับการสลับสถานะ
MO ก่อน MT เกี่ยวโยง บันทึกในกล่องขาเข้า; เชื่อมโยงเมื่อชำระ MT ชาร์จ MO เป็นขาออก
สถานะหลังคืนเงิน ไม่มีเงินใหม่; ใส่คำอธิบายประกอบ ชำระบัญชีความตั้งใจที่ถูกปล่อยอีกครั้ง
สองปลายทาง, หนึ่งความตั้งใจ แถวเงินเดียว สองแถวหักเงิน .

กฎการโพสต์ที่รอดพ้นจากการจัดเรียงใหม่

สร้างคีย์ระงับและคีย์ซ้ำซ้อนก่อนผลกระทบข้างเคียง (สัญญาเว็บโฮกก่อนการส่งข้อความครั้งแรก). ชำระบัญชีหนึ่งครั้งต่อความตั้งใจที่เรียกเก็บเงินได้; เหตุการณ์ภายหลังจะอัปเดตผลลัพธ์เท่านั้น ห้ามเปิดการหักเงินคู่ขนานสำหรับ DLR หรือ MO ที่มาเร็ว/ช้า ปฏิเสธหรือจอดไว้นอกหน้าต่างที่เซ็นชื่อ — ไม่มีผลลัพธ์ความสำเร็จที่ถูกสร้างขึ้น ส่งออกการเชื่อมโยงตามความตั้งใจ — ไม่ใช่ตามเวลาที่มาถึง เงิน↔ผลลัพธ์: แถว debit กับสถานะจัดส่งบน ledger เดียวกัน.

ความล่าช้าเป็นเรื่องปกติ; เงินสองเท่าไม่ใช่

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

รายการตรวจสอบของผู้ซื้อสำหรับลำดับเหตุการณ์เทียบกับการโพสต์

ตรวจสอบว่าระบบของคุณแยกแยะระหว่าง 'การมาถึงของเหตุการณ์' และ 'การชำระบัญชี' หรือไม่. ยืนยันว่าคีย์ idempotency ถูกสร้างขึ้นก่อนการส่งข้อความครั้งแรก. ตรวจสอบว่า DLR ที่มาถึงช้าไม่ทริกเกอร์การหักเงินใหม่. ตรวจสอบว่าการสลับสถานะ (เช่น จากล้มเหลวเป็นสำเร็จ) อัปเดตแถวเดิมแทนที่จะสร้างแถวใหม่. ตรวจสอบว่าการกระทบยอดของคุณใช้ ID ความตั้งใจเป็นหลัก.

เริ่มต้นกับ IOSOR

ในคอนโซล: Event order vs ledger posting must reconcile by shared id.. ระบุเจ้าของและเกตก่อนขยายปริมาณ.

เกี่ยวข้อง: duplicate webhook no second debit webhook consumer ops at volume.

สรุป IOSOR

นี่คือวินัยงานที่ส่งเวรได้ ไม่ใช่โบรชัวร์.

ทำ: name owner + gate. อย่า: skip the gate.

คู่มือนี้มีประโยชน์ไหม?

คู่มือที่เกี่ยวข้อง