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

ปัญหาที่กลไกนี้ถูกสร้างมาแก้
คุณกดปุ่มยืนยันการชำระเงิน สัญญาณมือถือกระตุกหนึ่งจังหวะ หน้าจอค้างอยู่ที่วงกลมหมุน แล้วขึ้นว่าเชื่อมต่อไม่สำเร็จ คำถามที่คุณตอบไม่ได้เลยในตอนนั้นคือ คำสั่งของคุณไปถึงเซิร์ฟเวอร์แล้วหรือยัง เพราะจากมุมของคุณ ทั้งกรณีที่คำสั่งไปไม่ถึง และกรณีที่คำสั่งไปถึงแล้วแต่คำตอบกลับมาไม่ถึง หน้าตาเหมือนกันเป๊ะ
นี่คือปัญหาพื้นฐานของการสื่อสารผ่านเครือข่าย และมันแก้ไม่ได้ด้วยการทำให้เน็ตเร็วขึ้น เพราะไม่ว่าเร็วแค่ไหน ก็ยังมีช่วงเวลาที่คำตอบกำลังเดินทางกลับและอาจหายไประหว่างทาง สิ่งที่แก้ได้คือทำให้การส่งซ้ำปลอดภัย ถ้าการส่งซ้ำไม่สร้างผลใหม่ คุณก็กดซ้ำได้โดยไม่ต้องรู้ว่าครั้งแรกสำเร็จหรือไม่ ซึ่งเปลี่ยนคำถามที่ตอบไม่ได้ให้กลายเป็นคำถามที่ไม่ต้องตอบ
| สิ่งที่เกิดขึ้นจริง | สิ่งที่คุณเห็น | ผลถ้าไม่มีการป้องกัน | ผลเมื่อมีการป้องกัน |
|---|---|---|---|
| คำสั่งไปไม่ถึงเซิร์ฟเวอร์ | ข้อความว่าเชื่อมต่อไม่สำเร็จ | กดซ้ำแล้วได้คำสั่งซื้อหนึ่งใบ ถูกต้อง | เหมือนกัน คือได้หนึ่งใบ |
| คำสั่งถึงแล้ว แต่คำตอบหายกลางทาง | ข้อความว่าเชื่อมต่อไม่สำเร็จ เหมือนกันทุกอย่าง | กดซ้ำแล้วได้สองใบ และถูกเก็บเงินสองรอบ | ระบบรู้ว่าเป็นรายการเดิม จึงคืนผลของใบเดิม |
| คำสั่งถึงแล้วและกำลังประมวลผลอยู่ | หน้าจอหมุนนานผิดปกติ | กดซ้ำแล้วเกิดสองงานที่ทำพร้อมกัน | คำขอที่สองถูกจับคู่กับงานเดิม ไม่เริ่มงานใหม่ |
สามสถานการณ์ที่หน้าตาเหมือนกันจากฝั่งผู้ใช้
กลไกนี้ทำงานอย่างไรโดยหลักการ
หัวใจของเรื่องคือการให้คำขอแต่ละครั้งมีตัวระบุประจำตัว เมื่อคุณเริ่มขั้นตอนชำระเงิน ระบบจะสร้างรหัสหนึ่งชุดผูกไว้กับความตั้งใจครั้งนั้นของคุณ รหัสนี้เดินทางไปกับคำขอทุกครั้งที่ส่งจากหน้าจอเดิม เมื่อเซิร์ฟเวอร์ได้รับคำขอที่ถือรหัสซึ่งเคยเห็นมาแล้ว มันจะไม่ทำงานใหม่ แต่จะคืนผลลัพธ์ของครั้งแรกกลับไปแทน
ผลที่ตามมามีสองอย่างที่สำคัญ อย่างแรกคือ ไม่ว่าคุณจะกดกี่ครั้ง ผลลัพธ์ที่ได้จะเป็นชุดเดียวกันเสมอ อย่างที่สองคือ คำตอบที่คุณได้ในการกดครั้งที่สองไม่ใช่คำตอบใหม่ แต่เป็นสำเนาของคำตอบเดิมที่คุณพลาดไปตอนเน็ตหลุด ซึ่งเป็นสิ่งที่คุณต้องการพอดี เพราะสิ่งที่คุณอยากรู้คือผลของครั้งแรก ไม่ใช่การเริ่มใหม่
- 1เปิดหน้าชำระเงินระบบสร้างตัวระบุประจำคำขอสำหรับความตั้งใจซื้อครั้งนี้ ตัวระบุนี้อยู่กับหน้าจอนั้น ไม่ได้อยู่กับบัญชีของคุณโดยรวม จึงเป็นเหตุผลว่าทำไมหน้าจอใหม่จึงถือเป็นความตั้งใจใหม่
- 2กดยืนยันครั้งแรกคำขอถูกส่งพร้อมตัวระบุ ถ้าทุกอย่างราบรื่น คุณจะได้คำตอบกลับมาและเรื่องจบตรงนี้ ปัญหาเกิดเฉพาะเมื่อคำตอบเดินทางกลับไม่ถึง
- 3เน็ตหลุดหรือหน้าจอค้างตอนนี้คุณไม่รู้ว่าเกิดอะไรขึ้นฝั่งเซิร์ฟเวอร์ ซึ่งเป็นภาวะปกติของการใช้งานบนมือถือ โดยเฉพาะบนไวไฟสาธารณะหรือสัญญาณอ่อน
- 4กดปุ่มเดิมซ้ำคำขอครั้งที่สองถือตัวระบุเดิม เซิร์ฟเวอร์จึงรู้ว่านี่คือความตั้งใจเดียวกัน ไม่ใช่การซื้อรอบใหม่ นี่คือจุดที่กลไกทำงาน และเป็นเหตุผลที่การกดปุ่มเดิมปลอดภัยกว่าการเปิดหน้าใหม่
- 5ได้ผลลัพธ์ชุดเดียวระบบคืนผลของครั้งแรก ถ้าครั้งแรกสำเร็จ คุณจะเห็นคำสั่งซื้อใบนั้น ถ้าครั้งแรกไม่เคยไปถึง ระบบจะดำเนินการให้เป็นครั้งแรก ทั้งสองทางจบลงด้วยคำสั่งซื้อหนึ่งใบ
ทำไมปุ่มเดิมจึงดีกว่าหน้าใหม่
ความรู้สึกตามสัญชาตญาณเวลาหน้าจอค้างคือ ปิดทิ้งแล้วเริ่มใหม่ให้สะอาด ซึ่งเป็นวิธีที่ใช้ได้ดีกับการกรอกแบบฟอร์มทั่วไป แต่ใช้ไม่ได้กับการชำระเงิน เพราะการเริ่มใหม่ให้สะอาดคือการทิ้งตัวระบุเดิม พร้อมกับทิ้งความสามารถของระบบที่จะรู้ว่าคุณเคยตั้งใจซื้อไปแล้วครั้งหนึ่ง
การกดปุ่มเดิมซ้ำจึงเป็นการกระทำที่ให้ข้อมูลกับระบบมากกว่า มันบอกว่านี่คือความพยายามครั้งที่สองของเรื่องเดิม ในขณะที่การเปิดหน้าใหม่บอกว่านี่คือเรื่องใหม่ ระบบไม่มีทางเดาแทนคุณได้ เพราะในทางเทคนิคแล้ว คนที่ตั้งใจซื้อสองแพ็กเกจจริง ๆ ก็ทำแบบเดียวกันเป๊ะ
หลักปฏิบัติที่ใช้ได้จริงคือ เมื่อไม่แน่ใจว่ารายการผ่านหรือไม่ ให้ทำสองอย่างตามลำดับ อย่างแรกคือรีเฟรชหน้าเดิมหรือกดปุ่มเดิมอีกครั้ง อย่างที่สองคือถ้ายังไม่ชัด ให้ไปดูประวัติคำสั่งซื้อแทนการซื้อใหม่ ประวัติคำสั่งซื้อคือแหล่งความจริงที่ไม่ต้องเดา และการดูมันไม่สร้างรายการอะไรเพิ่ม

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

เมื่อคุณตั้งใจซื้อสองใบจริง ๆ
มีหลายสถานการณ์ที่การมีสองโปรไฟล์เป็นสิ่งที่ตั้งใจ เช่น ซื้อให้ตัวเองและคู่เดินทาง หรือซื้อสองแพ็กเกจสำหรับสองช่วงของทริปที่ข้ามหลายภูมิภาค กลไกป้องกันรายการซ้ำไม่ได้ขวางคุณในกรณีเหล่านี้ เพราะแต่ละความตั้งใจเริ่มจากหน้าจอของมันเอง
สิ่งที่ควรทำเพื่อไม่ให้สับสนภายหลังคือแยกให้ชัดตั้งแต่ตอนซื้อ ทำรายการให้จบทีละใบ รอให้ใบแรกยืนยันก่อนแล้วค่อยเริ่มใบที่สอง และถ้าซื้อให้คนอื่น ให้จดไว้ว่าหมายเลขคำสั่งซื้อไหนเป็นของใคร คิวอาร์โค้ดหนึ่งใบติดตั้งได้กับเครื่องเดียว ดังนั้นการสลับใบกันตอนติดตั้งจะทำให้แก้ยากกว่าที่ควร
ข้อดี
- ซื้อทีละใบให้จบ ทำให้ประวัติคำสั่งซื้ออ่านง่ายและตรวจสอบภายหลังได้
- จดว่าใบไหนของใคร ป้องกันการติดตั้งผิดเครื่อง
ข้อจำกัด
- ซื้อพร้อมกันหลายแท็บ ทำให้แยกไม่ออกว่าใบไหนสำเร็จ
- ใช้อีเมลเดียวกันโดยไม่จดอะไรเลย ทำให้ต้องเดาตอนติดตั้ง
มุมมองจากฝั่งระบบ ทำไมจึงไม่ยกเลิกอัตโนมัติ
คำถามที่สมเหตุสมผลคือ ทำไมระบบไม่ยกเลิกใบที่สองให้เองเมื่อเห็นว่าซื้อซ้ำในเวลาไล่เลี่ยกัน คำตอบคือระบบไม่มีทางรู้ความตั้งใจของคุณ การซื้อสองใบติดกันภายในไม่กี่นาทีเป็นพฤติกรรมที่ถูกต้องสมบูรณ์สำหรับคนที่ซื้อให้ครอบครัว การยกเลิกให้อัตโนมัติจึงเสี่ยงที่จะทำลายคำสั่งซื้อที่ตั้งใจจริง
ทางออกจึงเป็นการแยกหน้าที่ ระบบรับผิดชอบว่าคำขอเดิมจะไม่ถูกทำซ้ำโดยไม่ตั้งใจ ส่วนคุณรับผิดชอบว่าความตั้งใจใหม่คือความตั้งใจใหม่จริง ๆ เมื่อทั้งสองฝั่งทำหน้าที่ของตัวเอง โอกาสเกิดรายการซ้ำจะเหลือน้อยมาก และเมื่อเกิดขึ้นก็แก้ได้เร็วเพราะมีร่องรอยชัดเจน
นิสัยเล็ก ๆ ที่ช่วยได้มากตอนจ่ายเงิน
กลไกฝั่งระบบทำงานได้ดีที่สุดเมื่อพฤติกรรมฝั่งผู้ใช้ไม่ขัดกับมัน นิสัยด้านล่างไม่ใช่กฎ แต่เป็นสิ่งที่ลดโอกาสเกิดปัญหาลงอย่างชัดเจน โดยเฉพาะเมื่อคุณกำลังซื้อจากที่ที่สัญญาณไม่ดี เช่น บนรถไฟฟ้าหรือในสนามบิน
- ซื้อจากไวไฟที่นิ่ง แทนที่จะซื้อระหว่างเดินทางบนสัญญาณที่ขาด ๆ หาย ๆ
- เปิดแท็บชำระเงินแท็บเดียว ไม่เปิดหลายแท็บพร้อมกัน
- ถ้าหน้าจอค้าง ให้รอสักครู่แล้วรีเฟรชหน้าเดิม ก่อนจะทำอย่างอื่น
- บันทึกหมายเลขคำสั่งซื้อทันทีที่เห็น เพราะมันคือกุญแจของทุกการสนทนาหลังจากนั้น
- ก่อนซื้อรอบใหม่ ให้เปิดประวัติคำสั่งซื้อเสมอ แม้จะมั่นใจว่ารายการแรกล้มเหลว
สรุปสิ่งที่ควรจำ
กลไกป้องกันรายการซ้ำมีอยู่เพื่อให้การกดซ้ำเป็นการกระทำที่ปลอดภัย มันแก้ปัญหาที่แก้ด้วยความเร็วไม่ได้ คือความไม่แน่นอนของเครือข่าย แต่ขอบเขตของมันจำกัดอยู่ที่คำขอซึ่งถือตัวระบุเดียวกัน ทุกอย่างที่เริ่มใหม่จากหน้าใหม่อยู่นอกขอบเขตนั้น
ในทางปฏิบัติ สิ่งที่คุณควรจำมีสามข้อ กดปุ่มเดิมแทนการเปิดหน้าใหม่ ดูประวัติคำสั่งซื้อก่อนซื้อซ้ำ และถ้าเกิดสองใบขึ้นมาจริง ให้แจ้งพร้อมหมายเลขทั้งคู่ทันทีแทนการรอใบแจ้งหนี้ สามข้อนี้ครอบคลุมเกือบทุกสถานการณ์ที่คนเจอในหน้าชำระเงิน
คำถามที่พบบ่อย
กดปุ่มจ่ายเงินซ้ำ ปลอดภัยจริงหรือ+
ปลอดภัยกว่าการเปิดหน้าซื้อใหม่อย่างชัดเจน เพราะคำขอครั้งที่สองจากหน้าจอเดิมถือตัวระบุเดียวกัน ระบบจึงจับคู่กับความตั้งใจเดิมแทนการสร้างรายการใหม่ สิ่งที่ไม่ปลอดภัยคือการปิดหน้าต่างแล้วเริ่มกระบวนการซื้อใหม่ทั้งชุด เพราะนั่นคือความตั้งใจใหม่ในสายตาระบบ ถ้าไม่แน่ใจ ให้รีเฟรชหน้าเดิมก่อน แล้วดูประวัติคำสั่งซื้อเป็นขั้นถัดไป
ถ้าจ่ายด้วยบัตรไม่ผ่าน แล้วเปลี่ยนไปจ่ายอีกวิธี จะซ้ำไหม+
อาจซ้ำได้ เพราะรายการบัตรที่ดูเหมือนล้มเหลวบางครั้งอยู่ระหว่างการกันวงเงินและสำเร็จตามมาทีหลัง ก่อนเปลี่ยนวิธีจ่าย ให้เปิดแอปธนาคารดูว่ามียอดถูกกันไว้หรือไม่ และเปิดประวัติคำสั่งซื้อดูว่ามีใบใหม่เกิดขึ้นแล้วหรือยัง ถ้าสุดท้ายเกิดสองยอดจริง ให้ส่งหมายเลขคำสั่งซื้อทั้งคู่มาพร้อมกัน จะจัดการได้เร็วกว่ารอให้ใบแจ้งหนี้มาถึง
ระบบจะรู้เองไหมว่าฉันซื้อซ้ำ แล้วยกเลิกให้+
ไม่ ระบบไม่ยกเลิกให้อัตโนมัติ เพราะการซื้อสองใบติดกันเป็นพฤติกรรมปกติของคนที่ซื้อให้ครอบครัวหรือซื้อสองช่วงของทริป การเดาความตั้งใจแทนคุณจึงเสี่ยงที่จะลบคำสั่งซื้อที่ตั้งใจจริง สิ่งที่ระบบทำได้คือไม่ทำซ้ำคำขอเดิม ส่วนการยืนยันว่าใบไหนคือใบที่คุณต้องการต้องมาจากคุณ
ได้คิวอาร์โค้ดมาสองใบ ติดตั้งทั้งคู่เลยได้ไหม+
อย่าติดตั้งทั้งคู่ ให้เลือกใบที่ตรงกับแผนเดินทางแล้วติดตั้งเฉพาะใบนั้น ส่วนอีกใบให้ปล่อยไว้โดยไม่แตะ เพราะโปรไฟล์ที่ติดตั้งและเริ่มใช้แล้วอาจถูกนับว่าถูกใช้ไป ทำให้จัดการยากขึ้นมาก จากนั้นส่งหมายเลขคำสั่งซื้อทั้งสองใบมาพร้อมระบุว่าใบไหนคือใบที่คุณใช้ เงื่อนไขการยกเลิกต่างกันไปตามแพ็กเกจ เราจึงต้องดูจากคำสั่งซื้อจริงก่อนตอบ
ถ้าเน็ตหลุดตอนกดจ่าย แล้วฉันไม่ทำอะไรเลย จะเกิดอะไรขึ้น+
มีสองความเป็นไปได้ คำขออาจไปไม่ถึงเลย ซึ่งแปลว่าไม่มีอะไรเกิดขึ้นและไม่มีการเก็บเงิน หรือคำขออาจไปถึงและดำเนินการต่อจนจบ ซึ่งแปลว่าคุณมีคำสั่งซื้อที่สำเร็จโดยที่ยังไม่เห็นหน้าจอยืนยัน วิธีแยกสองกรณีนี้คือเปิดประวัติคำสั่งซื้อและตรวจอีเมล ไม่ใช่การเดาจากหน้าจอที่หายไป
การป้องกันรายการซ้ำเกี่ยวข้องกับการเติมเงินด้วยไหม+
หลักการเดียวกันใช้ได้กับการเติมเงิน คือการส่งคำขอเดิมซ้ำจากหน้าจอเดิมไม่ควรทำให้ยอดถูกเติมสองรอบ แต่การเปิดหน้าเติมใหม่แล้วทำรายการใหม่ยังคงเป็นคนละรายการเหมือนเดิม สิ่งที่ทำให้การเติมสับสนกว่าคือยอดดาต้าบนหน้าจอเครื่องอาจอัปเดตช้ากว่าฝั่งเครือข่าย ทำให้คนคิดว่าเติมไม่สำเร็จแล้วเติมซ้ำ ให้ดูประวัติคำสั่งซื้อก่อนเสมอ
แหล่งอ้างอิง
- draft-ietf-httpapi-idempotency-key-header-07 - The Idempotency-Key HTTP Header Field — IETF, 10 ตุลาคม 2569
- Idempotent requests | Stripe API Reference — Stripe, 10 ตุลาคม 2569