IOSOR علم

ڈپلیکیٹ ویب ہک سے دوسری بار ڈیبٹ نہیں ہونا چاہیے

فیل پاتھ: ری ٹرائی اور ری پلے پری پیڈ رقم اور ان باکس پر آئی ڈیم پوٹنٹ رہیں — ایک ایونٹ آئی ڈی، ایک ڈیبٹ قطار، ایک ان باکس لائن۔

کم از کم ایک بار ڈیلیوری ری ٹرائی کرے گی۔ ایک ڈپلیکیٹ ویب ہک جو دوسری بار ڈیبٹ یا ان باکس لائن پوسٹ کرتا ہے، وہ ایک مالیاتی اور آپریشنل حادثہ ہے، نہ کہ «معمولی ایکنولجمنٹ»۔ یہ صفحہ فیل پاتھ کی وضاحت کرتا ہے: ری ٹرائی اور ری پلے پری پیڈ بیلنس اور ان باکس پر آئی ڈیم پوٹنٹ رہیں — یہ API سینڈ-آئی ڈیم پوٹنسی مضمون یا ان باؤنڈ SMS ری ٹرائی پلے بک سے مختلف ہے۔

متعلقہ: دستخط اور ری پلے ونڈو گیٹ، پہلی ترسیل سے پہلے کا ویب ہুক معاہدہ، ایک ہی ledger پر ڈیبٹ قطار اور ڈیلیوری سٹیٹس۔

IOSOR ایک وائٹ لیبل پری پیڈ سسٹم ہے۔ USD 20 فنڈ ایک صارف پر ڈپلیکیٹ ایونٹ کی جانچ کے لیے کافی ہے؛ USD 1,000/ماہ کے قریب سافٹ ریویو میں «ری ٹرائی = نیا چارج» کو ریکن ڈیٹ سمجھا جاتا ہے۔ کلائنٹس صرف وائٹ لیبل ایونٹ آئی ڈی دیکھتے ہیں۔

آئی ڈیم پوٹنسی ایک فیل پاتھ ہے، نعرہ نہیں

ہیپی پاتھ: ایک دستخط شدہ ایونٹ، ایک قبولیت، ایک ڈیبٹ۔ فیل پاتھ اعتماد کو نقصان پہنچاتا ہے — ٹائم آؤٹ، 5xx، پرووائیڈر ری پلے، آپریٹر ری پش۔ سائیڈ ایفیکٹس (لیجر، ان باکس، CRM) سے پہلے پہلی ترسیل سے پہلے کا ویب ہুক معاہدہ سے آئی ڈیم پوٹنسی کی کو محفوظ کریں۔ سافٹ USD 1,000/ماہ والیوم «ACK کے بعد نئی کی بنانا» کو ڈیٹ سمجھتا ہے؛ USD 20 ثابت کرتا ہے کہ زبردستی ری پلے کبھی رقم دوگنا نہیں کرتا۔

ڈپلیکیٹ کیا ہے

سگنل ڈپلیکیٹ تب سمجھیں جب محفوظ نتیجہ
ایونٹ آئی ڈی ونڈو میں پہلے سے قبول شدہ ACK؛ دوسرا ڈیبٹ نہیں
میسج آئی ڈی لیجر سے پہلے سے لنکڈ قطار دوبارہ استعمال؛ نیا چارج نہیں
ان باکس کی MO/MT پہلے سے فائل شدہ ان باکس لائن نہیں
ری پلے ونڈو سے باہر گیٹ ریجیکٹ کے بعد ری ٹرائی ریجیکٹ؛ رقم رائٹ نہیں

رقم دو بار نہیں جانی چاہیے

ایک ہی ایونٹ آئی ڈی کے لیے دوسرا ڈیبٹ ایک بگ ہے، چاہے پروڈکٹ «ڈیلیورڈ» دکھائے۔ فنانس ایونٹ یا میسج آئی ڈی کے ذریعے فلٹر کرتا ہے اور اس UTC ونڈو کے لیے ایک پری پیڈ قطار دیکھتا ہے۔ ACK کے بعد جزوی سائیڈ ایفیکٹس — پہلے CRM، بعد میں لیجر — ڈبل ٹروتھ بناتے ہیں۔ اگر پروسیسنگ ناکام ہو جائے تو اسی کی پر ورکر کو ری ٹرائی کریں؛ HTTP باڈی کو نیا چارج نہ سمجھیں۔ ڈپلیکیٹ سموک ٹیسٹ میں ایک لیجر لائن نظر آنے تک سافٹ والیوم لینگویج بلاک رہے گی۔

ان باکس بھی دوگنا نہیں ہونا چاہیے

آئی ڈیم پوٹنسی صرف رقم کے بارے میں نہیں ہے۔ ایک ری پلے شدہ ان باؤنڈ یا ڈیلیوری ایونٹ جو دوسری ان باکس تھریڈ کھولتا ہے، سپورٹ ٹیم کو بھوتوں کا پیچھا کرنے پر مجبور کرتا ہے اور آٹو ریپلائی لوپس کو متحرک کر سکتا ہے۔ ان باکس کی کو اسی ایونٹ آئی ڈی کے ساتھ اسٹور کریں جو ڈیبٹ کے لیے استعمال ہوئی تھی۔ پروڈکٹ اور فنانس ریجیکٹ/ڈپلیکیٹ سٹیٹس شیئر کرتے ہیں۔

ڈپلیکیٹ-محفوظ ویب ہکس کے لیے خریدار کی چیک لسٹ

  • کیا آپ کا سسٹم ACK سے پہلے ایونٹ آئی ڈی کو لیجر میں لاک کرتا ہے؟
  • کیا آپ کا CRM ری پلے کو پہچان کر اسے نظر انداز کرتا ہے؟
  • کیا آپ کے پاس ری پلے ونڈو کے باہر ایونٹس کو مسترد کرنے کا گیٹ ہے؟
  • کیا آپ کا لیجر UTC ونڈو کے لحاظ سے ایونٹ آئی ڈی کو یونیک رکھتا ہے؟

IOSOR کے ساتھ شروعات کریں

پہلے سے کٹے گلیارے پر کھڑکی کے اندر ایک دستخط شدہ دوبارہ بھیج زبردستی کریں۔ event id کو ledger id کے پاس برآمد کریں اور ایک debit قطار و ایک inbox قطار ثابت کریں۔ دوسری کٹ نظر آئے تو اس صارف کو روکیں اور زائد قطار لوٹائیں — بعد کی ٹریفک سے نت نہ کریں۔ یہ دوبارہ بھیج کی رقم کا دروازہ ہے، E.164 جانچ یا شپنگ جملہ نہیں۔

IOSOR خلاصہ

دوبارہ بھیجنا نئی ترسیل نہیں۔ ایک event id ایک debit لکھتی ہے۔

کریں: دستخط اور کھڑکی آن رکھیں، کھڑکی میں POST کے بعد ایک debit ثابت کریں۔ نہ کریں: ہر POST کاٹنا، یا نیٹ ورک کی دوبارہ کوشش کو دوسرا بل سمجھنا۔

کیا یہ گائیڈ مددگار تھی؟

متعلقہ رہنما