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

- ชื่อ
- 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 Base Network (ABN), ABN ASIA ถูกก่อตั้งขึ้นโดยคนที่มีรากฐานลึกในวงการวิชาการ มีประสบการณ์การทำงานในสหรัฐอเมริกา ดัตช์ ฮังการี ญี่ปุ่น เกาหลีใต้ สิงคโปร์ และเวียดนาม ABN Asia เป็นที่เราพบกันของวิทยาลัยและเทคโนโลยี ด้วยโซลูชันขั้นสูงและบริการพัฒนาซอฟต์แวร์ที่มีความสามารถ เราช่วยธุรกิจเติบโตและเข้าสู่ฉากโลก ความมุ่งมั่นของเรา: ด่วนขึ้น ดีขึ้น น่าเชื่อถือมากขึ้น ในกรณีส่วนมาก: ราคาถูกด้วย
หากคุณต้องการบริการ IT การให้คำปรึกษาดิจิทัล โซลูชันซอฟต์แวร์ใช้ได้หรือหากคุณต้องการส่งคำขอข้อเสนอ (RFPs) อย่าลังเลที่จะติดต่อเรา คุณสามารถติดต่อเราได้ที่ [email protected] เราพร้อมช่วยเหลือคุณด้านทุกความต้องการทางเทคโนโลยีของคุณทุกเมื่อ

© ABN ASIA