IOSOR ज्ञान

डुप्लिकेट वेबहुकमुळे दुसरे डेबिट तयार होऊ नये

अपयशी मार्ग: प्रयत्न आणि रीप्ले प्रीपेड पैसे आणि इनबॉक्सवर एकसारखे राहतात — एक इव्हेंट आयडी, एक डेबिट ओळ, एक इनबॉक्स ओळ.

कमीत कमी एकदा वितरणाचा प्रयत्न केला जाईल. दुसरा डेबिट किंवा इनबॉक्स ओळ पोस्ट करणारा डुप्लिकेट वेबहुक म्हणजे पैशांची आणि ऑप्सची समस्या आहे, 'निरुपद्रवी ACK' नाही. हे पान अपयशी मार्ग आहे: प्रयत्न आणि रीप्ले प्रीपेड पैसे आणि इनबॉक्सवर समरूप राहतात — API पाठवण्याचा आयडempotेंसी निबंध नाही आणि इनबाउंड एसएमएस रीप्ले प्लेबुक नाही.

संबंधित: स्वाक्षरी आणि रीप्ले विंडो गेट, पहिल्या पाठवण्यापूर्वी वेबहुक करार, एकाच ledger वर डेबिट ओळ आणि डिलिव्हरी स्थिती.

IOSOR हे व्हाईट-लेबल प्रीपेड आहे. USD 20 एका ग्राहकावर डुप्लिकेट-इव्हेंट स्मोक फंड करते; USD 1,000/महिना जवळचे सॉफ्ट पुनरावलोकन 'रीप्ले = नवीन शुल्क' रिकोन कर्ज म्हणून मोजते. ग्राहकांना केवळ व्हाईट-लेबल इव्हेंट आयडी दिसतात.

आयडempotेंसी हा अपयशी मार्ग आहे, घोषणा नाही

आनंदी मार्ग: एक स्वाक्षरी केलेले इव्हेंट, एक स्वीकार, एक डेबिट. अपयशी मार्ग विश्वास नष्ट करतो — टाइमआउट, 5xx, प्रदाता रीप्ले, ऑपरेटर री-पुश. पहिल्या पाठवण्यापूर्वी वेबहुक करार मधील आयडempotेंसी की साइड इफेक्ट्सच्या आधी स्टोअर करा: लेजर, इनबॉक्स, CRM. सॉफ्ट USD 1,000/महिना 'ACK नंतर नवीन की तयार करणे' हे व्हॉल्यूम कर्ज म्हणून मानते; USD 20 सिद्ध करते की सक्तीचा रीप्ले कधीही पैसे दुप्पट करत नाही.

डुप्लिकेट म्हणून काय मोजले जाते

सिग्नल केव्हा डुप्लिकेट मानू सुरक्षित परिणाम
इव्हेंट आयडी विंडोमध्ये आधीच स्वीकारलेला आयडी ACK; दुसरे डेबिट नाही
संदेश आयडी लेजरशी जोडलेला संदेश ओळ पुन्हा वापरा; नवीन शुल्क नाही
इनबॉक्स की आधीच दाखल केलेली MO/MT कोणतीही दुसरी इनबॉक्स ओळ नाही
बाह्य रीप्ले विंडो गेट अस्वीकार केल्यानंतर जुना प्रयत्न अस्वीकार; पैसे/स्थिती लेखन नाही
अज्ञात प्रकार करार इव्हेंट सूचीमध्ये नाही ड्रॉप; यश नाही

पैसे दोनदा हलणार नाहीत

त्याच इव्हेंट आयडीसाठी दुसरे डेबिट हा एक बग आहे जरी उत्पादन 'अजूनही वितरीत केलेले दाखवत असले' तरीही. वित्त इव्हेंट किंवा संदेश आयडीद्वारे फिल्टर करते आणि त्या UTC विंडोसाठी एक प्रीपेड ओळ पाहते. ACK नंतर आंशिक साइड इफेक्ट्स — प्रथम CRM, नंतर लेजर — दुप्पट सत्य तयार करतात. टिकून राहिल्यानंतर प्रोसेसिंग अपयशी ठरल्यास, त्याच की वर वर्करला पुन्हा प्रयत्न करा; HTTP बॉडीला नवीन शुल्क मानू नका. डुप्लिकेट स्मोक एक लेजर ओळ दाखवेपर्यंत सॉफ्ट व्हॉल्यूम भाषा ब्लॉक राहील.

इनबॉक्स देखील दुप्पट होऊ नये

आयडempotेंसी केवळ पैशांबद्दल नाही. एक रीप्ले केलेले इनबाउंड किंवा डिलिव्हरी इव्हेंट जे दुसरी इनबॉक्स थ्रेड उघडते, ते सपोर्ट टीमला गोंधळात टाकते आणि ऑटो-रिप्लाय लूप ट्रिगर करू शकते. डेबिटसाठी वापरलेल्या त्याच इव्हेंट आयडीसह इनबॉक्स की स्टोअर करा. उत्पादन आणि वित्त रिजेक्ट/डुप्लिकेट स्थिती शेअर करतात.

डुप्लिकेट-सुरक्षित वेबहुकसाठी खरेदीदाराची चेकलिस्ट

  • तुमची सिस्टम ACK च्या आधी इव्हेंट आयडी लेजरमध्ये लॉक करते का?
  • तुमचा CRM रीप्ले ओळखतो आणि त्याकडे दुर्लक्ष करतो का?
  • रीप्ले विंडोच्या बाहेरील इव्हेंट्स नाकारण्यासाठी तुमच्याकडे गेट आहे का?
  • तुमचा लेजर UTC विंडोनुसार इव्हेंट आयडी युनिक ठेवतो का?

IOSOR सह प्रारंभ करा

आधीच कापलेल्या मार्गिकेवर खिडकीत एक सही केलेला पुन्हापाठ जबरदस्ती करा. event id ledger id शेजारी निर्यात करा आणि एक debit ओळ व एक inbox ओळ सिद्ध करा. दुसरी कपात दिसेल तर तो ग्राहक थांबवा आणि जास्तीची ओळ परत करा — नंतरच्या रहदारीने नेट करू नका. हे पुन्हापाठाचे पैसे दार आहे, E.164 तपासणी किंवा शिपिंग वाक्य नाही.

IOSOR सारांश

पुन्हापाठ नवे पाठवणे नाही. एक event id एक debit लिहिते.

करा: सही आणि खिडकी चालू ठेवा, खिडकीतील POST नंतर एक debit सिद्ध करा. करू नका: प्रत्येक POST कापणे, किंवा नेटवर्क पुन्हाप्रयत्न दुसरे बिल समजणे.

हा मार्गदर्शक उपयुक्त होता का?

संबंधित मार्गदर्शक