הפרידו קבלה מהשלמת עיבוד
ההבטחות תלויות בספק. Stripe מתעדת כפילויות אפשריות והיעדר סדר מובטח. תגובת HTTP מוצלחת צריכה להתאים לקבלה עמידה או לעיבוד הנדרש, לא רק להגעת בקשה לזיכרון.
| מצב | התנהגות צפויה | ראיה מועילה |
|---|---|---|
| אותו אירוע פעמיים | מניעת השפעה עסקית כפולה. | מזהה שעובד ותוצאה שמורה. |
| אירוע ישן מגיע מאוחר | אין לדרוס מצב חדש בעיוורון. | מצב מוסמך וכלל מעבר. |
| עיבוד כבד | קבלה עמידה ואחריה עבודה נדחית. | מצב תור ותוצאת עובד. |
| מסירה חסרה | התאמה ושחזור לפי כללי הספק. | פער מזוהה ותיקון שנבדק. |
בנו קבלה שניתנת לבדיקה
- בדקו HTTPS, חתימה והגנת שחזור לפי הפרוטוקול. Stripe בודקת חתימה על הגוף הגולמי; שינוי JSON לפני כן עלול לפגוע בבדיקה.
- שמרו אירוע או עיבוד באופן עמיד לפני האישור המתאים. הבדילו מזהה מסירה, מזהה אירוע ומפתח אידמפוטנטיות של הפעולה.
- בדקו כפילויות, סדר שגוי, הפסקת עובד והפעלה מחדש. קראו מצב מוסמך של האובייקט אם אירוע ישן אינו מאפשר החלטה בטוחה.
ארגנו שחזור והתאמה
תעדו ניסיונות, זמנים, אירועים שלא עובדו והתאמה מול הספק. אישור מהיר עלול להסתיר כשל מאוחר. עקבו גם אחר הפעולה הסופית וצמצמו סודות ומידע אישי ביומנים.
מקורות ראשוניים
טיפול בטוח ב-webhooks חוזרים.
הודעה עשויה לחזור על עצמה לאחר פסק זמן או תגובה שאבדה. אמינות תלויה באימות מקור, מזהה אירוע ועיבוד המפריד בין הודעה חדשה להודעה כפולה.
- אימות כל בקשה באמצעות מנגנון הספק.
- בדיקת ניסיונות חוזרים, כפילויות ושינוי סדר הגעה.
- אישור עקבי לאחר עיבוד או תור עמיד.
מקור ראשוני: IETF RFC 9457 — Problem Details for HTTP APIs. שיטה קשורה: קריאת המדריך המעשי.
