- เผยแพร่เมื่อ
วิธีหลีกเลี่ยงการชำระเงินซ้ำ
- ผู้เขียน

- ชื่อ
- AbnAsia.org
- @steven_n_t
เมื่อดูครั้งแรก การส่งมอบแบบ exactly-once ดูเหมือนจะยากมากที่จะจัดการ แต่ถ้าเราหารปัญหานี้ออกเป็นสองส่วน ก็จะง่ายกว่าที่จะแก้ไข ในทางคณิตศาสตร์ การดำเนินการจะถูกดำเนินการแบบ exactly-once หาก

เมื่อดูครั้งแรก การส่งมอบแบบ exactly-once ดูเหมือนจะยากมาก แต่ถ้าเราหารปัญหานี้ออกเป็นสองส่วน จะทำให้การแก้ไขง่ายขึ้นมาก ในทางคณิตศาสตร์ การดำเนินการจะถูกดำเนินการ exactly-once หาก:
มันถูกดำเนินการอย่างน้อยหนึ่งครั้ง
ในเวลาเดียวกัน มันถูกดำเนินการมากที่สุดหนึ่งครั้ง
ตอนนี้เราจะอธิบายวิธีการทำ at least once โดยใช้ retry และ at most once โดยใช้ idempotency check
Retry: บางครั้งเราต้องทำการทำซ้ำธุรกรรมการชำระเงินเนื่องจากข้อผิดพลาดของเครือข่ายหรือหมดเวลา Retry ให้การรับประกัน at-least-once ตัวอย่างเช่น ตามที่แสดงใน Figure 10 ลูกค้าพยายามชำระเงิน $10 แต่การชำระเงินล้มเหลวเนื่องจากการเชื่อมต่อเครือข่ายไม่ดี เมื่อพิจารณาว่าเงื่อนไขเครือข่ายอาจดีขึ้น ลูกค้าทำการร้องขอซ้ำและชำระเงินสำเร็จในการพยายามครั้งที่สี่
Idempotency: จากมุมมองของ API idempotency หมายถึงลูกค้าสามารถทำการเรียกซ้ำๆ และผลลัพธ์จะเหมือนกัน
สำหรับการสื่อสารระหว่างลูกค้า (เว็บและแอปพลิเคชันบนมือถือ) และเซิร์ฟเวอร์ idempotency key มักเป็นค่าเฉพาะที่สร้างโดยลูกค้าและหมดอายุหลังจากช่วงเวลาหนึ่ง UUID มักใช้เป็น idempotency key และได้รับการแนะนำจากบริษัทเทคโนโลยีหลายแห่ง เช่น Stripe และ PayPal เพื่อดำเนินการ idempotent payment request จะต้องเพิ่ม idempotency key เข้าไปใน HTTP header
โปรดทราบว่าเวอร์ชันภาษาไทยได้รับการช่วยเหลือจาก AI ดังนั้นอาจมีข้อผิดพลาดเล็กน้อย
ผู้เขียน
Ai-Banking-NetworkSecurity (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย
หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องการทางเทคโนโลยีของคุณทุกเมื่อ

© ABN ASIA