เผยแพร่เมื่อ

วิธีหลีกเลี่ยงการชำระเงินซ้ำ

ผู้เขียน

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

Image

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

  1. มันถูกดำเนินการอย่างน้อยหนึ่งครั้ง

  2. ในเวลาเดียวกัน มันถูกดำเนินการมากที่สุดหนึ่งครั้ง

ตอนนี้เราจะอธิบายวิธีการทำ 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] เราพร้อมช่วยเหลือคุณด้านทุกความต้องการทางเทคโนโลยีของคุณทุกเมื่อ

ABNAsia.org

© ABN ASIA