IOSOR ידע

וובהוק כפול אסור שייצור חיוב שני

מסלול כשל: ניסיונות חוזרים ושחזורים נשארים אידמפוטנטיים בכסף מראש ובתיבת הדואר הנכנס — מזהה אירוע אחד, שורת חיוב אחת, שורה אחת בתיבת הדואר.

משלוח לפחות-פעם-אחת יבצע ניסיונות חוזרים. וובהוק כפול שמפרסם חיוב שני או שורה שנייה בתיבת הדואר הוא תקרית כספית ותפעולית, ולא אישור לא מזיק. עמוד זה מתאר את מסלול הכשל: ניסיונות חוזרים ושחזורים נשארים אידמפוטנטיים בכסף מראש ובתיבת הדואר הנכנס — ולא מאמר על אידמפוטנטיות שליחת API או ספר משחקים לניסיונות SMS נכנסים.

קשור: שער חתימה וחלון שידור חוזר, חוזה וובהוק לפני השליחה הראשונה, שורות debit מול סטטוס מסירה באותו ledger.

IOSOR היא פלטפורמת תשלום מראש במותג לבן. USD 20 מממנים בדיקת עשן לאירוע כפול על צרכן יחיד; סקירה רכה סביב USD 1,000/month מתמחרת «ניסיונות חוזרים שווי ערך לחיוב חדש» כחוב גישור. לקוחות רואים מזהי אירועים של מותג לבן בלבד.

אידמפוטנטיות היא מסלול כשל ולא סיסמה

מסלול חיובי: אירוע חתום אחד, אישור אחד, חיוב אחד. מסלול כשל שורף אמון — זמן קצוב, 5xx, שחזור ספק, דחיפה חוזרת של מפעיל. אחסן את מפתח האידמפוטנטיות מתוך חוזה וובהוק לפני השליחה הראשונה לפני השפעות צד: ספר חשבונות, תיבת דואר, CRM. נפח רך של USD 1,000/month מתייחס אל «אישור ואז המצאת מפתח חדש» כאל חוב נפח; USD 20 מוכיח ששידור חוזר מאולץ לעולם אינו מכפיל כסף.

מה נחשב ככפול

אות התייחס ככפול כאשר תוצאה בטוחה
מזהה אירוע אותו מזהה התקבל כבר בחלון אישור; אין חיוב שני
מזהה הודעה אותה הודעה מקושרת לספר שימוש חוזר; אין חיוב
מפתח תיבה אותה הודעה נרשמה כבר אין שורה שנייה בתיבה
מחוץ לחלון ניסיון ישן לאחר דחייה דחייה; אפס כתיבות
סוג לא ידוע לא ברשימת החוזה זריקה; אפס המצאות

שער חתימה וחלון שידור חוזר מחליט לגבי אותנטיות וטריות. עמוד זה מטפל במה שקורה אחרי כפול תקף: מצב סופי אחד, שורת כסף אחת, שורה אחת בתיבה.

אסור לכסף לזוז פעמיים

חיוב שני עבור אותו מזהה אירוע הוא באג גם אם המוצר «עדיין מציג נמסר». פיננסים מסננים לפי אירוע או מזהה הודעה ורואים שורת תשלום מראש אחת לאותו חלון UTC. השפעות צד חלקיות לאחר אישור — CRM קודם, ספר חשבונות אחר כך — מייצרות אמת כפולה. אם העיבוד נכשל לאחר השמירה, הפעל מחדש את העובד על אותו מפתח; אל תקבל מחדש את גוף ה-HTTP כחיוב חדש. שפת נפח רכה נשארת חסומה עד שעשן כפול מציג שורה אחת בספר החשבונות.

אסור לתיבת הדואר להיות כפולה

אידמפוטנטיות היא לא רק כסף. אירוע נכנס או מסירה משוחזר שפותח חؤשת דואר שנייה מאמן תמיכה לרדוף אחרי רוחות ויכול להפעיל לולאות מענה אוטומטי. אחסן את מפתח התיבה עם אותו מזהה אירוע המשמש לחיוב. מוצר ופיננסים חולקים מילות דחייה/כפילות: שפת סטטוס משותפת למוצר ולפיננסים. USD 20 מוכיח ששידור חוזר מאולץ אחד משאיר את קרדינליות התיבה ללא שינוי.

רשימת בדיקה לקוד וובהוק בטוח לכפילויות

  1. צורת מפתח אידמפוטנטיות הוסכמה בחוזה ונשמרה לפני השפעות צד?
  2. מזהה אירוע כפול בחלון → אישור ללא חיוב שני?
  3. אותו מזהה הודעה לעולם אינו פותח שורת ספר שנייה?
  4. הוספת תיבה מותאמת באותו אופן — ללא חוט שני בשידור חוזר?
  5. כשל חתימה ודחיית חלון ניתנים לספירה בנפרד מכפילויות אמיתיות?
  6. שיחת USD 1,000/month רך חסולה בזמן שעשן כפול אדום?

כל «לא» שומר על כסף וובהוק בטוח לכפילויות — ותיבת דואר מהימנה — בטיוטה.

התחל עם IOSOR

כפו שחזור חתום אחד בתוך החלון במסדרון שכבר חויב. ייצאו מזהה אירוע ליד מזהה הספר והוכיחו שורת חיוב אחת ושורת דואר נכנס אחת. אם מופיע חיוב שני, עצרו את הצרכן והחזירו את השורה העודפת — אל תקזזו מול תעבורה מאוחרת. זה שער כסף של שחזור, לא בדיקת E.164 ולא נוסח משלוח.

סיכום IOSOR

שחזור אינו שליחה חדשה. מזהה אירוע אחד כותב חיוב אחד.

עשו: השאירו חתימה וחלון שחזור, ואז הוכיחו חיוב אחד אחרי POST בחלון. אל: אל תחייבו כל POST, ואל תתייחסו לניסיון רשת כחשבונית שנייה.

האם המדריך הזה עזר?

מדריכים קשורים