BroadNet
جرنلانجینئرنگ
انجینئرنگ

SMS OTP autofill: Android SMS Retriever، iOS one-time-code اور WebOTP میسج فارمیٹ

اگر میسج اس کے لیے فارمیٹ کیا گیا ہو تو SMS کوڈز Android، iOS اور ویب پر خود بخود بھر سکتے ہیں: Android کے SMS Retriever کے لیے 11 کریکٹرز کا ایپ ہیش، iOS اور Safari کے لیے autocomplete="one-time-code"، اور WebOTP کے لیے @your-domain #code کی آخری لائن۔ یہاں ہر فارمیٹ اور ایک ٹیمپلیٹ دیا گیا ہے جو ان تینوں کے لیے کام کرتا ہے۔

8 منٹ کا مطالعہ
انجینئرنگ · شمارہ 40
8 منٹ کا مطالعہ

گر میسج پلیٹ فارم کے لیے فارمیٹ کیا گیا ہو تو SMS ون ٹائم کوڈز خود بخود بھر سکتے ہیں۔ Android پر، SMS Retriever API ایسا میسج پڑھتا ہے جو 140 بائٹس سے زیادہ نہ ہو، جس میں کوڈ شامل ہو اور 11 کریکٹرز کا ہیش ہو جو آپ کی ایپ کی شناخت کرے۔ iOS اور Safari میں، ان پٹ کو autocomplete="one-time-code" (نیٹیو ایپس میں textContentType oneTimeCode) کے ساتھ نشان زد کریں اور کی بورڈ کوڈ تجویز کرتا ہے۔ ویب پر، WebOTP API ایسا میسج پڑھتا ہے جس کی آخری لائن @your-domain #code ہو۔ ایک ٹیمپلیٹ ان تینوں کے لیے کافی ہو سکتا ہے۔

اہم نکات

  • Autofill ایپ سوئچنگ کے عمل کو ختم کر دیتا ہے جس کی وجہ سے کوڈ وصول کرنے اور ٹائپ کرنے کے درمیان صارفین کا نقصان ہوتا ہے۔
  • Android SMS Retriever: زیادہ سے زیادہ 140 بائٹس کا میسج، جس میں کوڈ اور آپ کا 11 کریکٹرز کا ایپ ہیش شامل ہو؛ کسی SMS پرمیشن کی ضرورت نہیں ہے۔
  • Android SMS User Consent: کوئی ہیش نہیں؛ میسج میں 4 سے 10 کریکٹرز کا الفانیومیرک کوڈ ہونا چاہیے جس میں کم از کم ایک نمبر ہو؛ صارف اجازت دینے کے لیے ٹیپ کرتا ہے۔
  • iOS اور Safari: ان پٹ پر autocomplete="one-time-code"؛ ڈومین سے منسلک آخری لائن Safari کی تجویز کو فعال کرتی ہے۔
  • WebOTP: آخری لائن @domain #code، جس میں کوئی اسکیم، پورٹ یا پاتھ نہ ہو؛ اسے Android اور ڈیسک ٹاپ پر Chrome میں سپورٹ کیا جاتا ہے۔

OTP کا autofill کیوں اہم ہے؟

اینو کوڈ بھیجے جانے "code sent" اور کوڈ درج کیے جانے "code entered" کے درمیان ہر مرحلہ صارفین کو کھو دیتا ہے: میسجز ایپ پر سوئچ کرنا، چھ ہندسوں کو یاد رکھنا، اور پھر واپس سوئچ کرنا۔ Autofill اس عمل کو صرف ایک ٹیپ میں بدل دیتا ہے۔ یہ ٹائپنگ کی غلطیوں کو بھی کم کرتا ہے اور ڈومین سے منسلک کوڈز کے ساتھ، کسی صارف کو مشابہ ویب سائٹ پر کوڈ درج کرنے کے لیے دھوکہ دینا مشکل بنا دیتا ہے۔ یہ ڈیلیوری کو ٹھیک نہیں کرتا: کوڈ کا تیزی سے پہنچنا اب بھی ضروری ہے، اس لیے autofill کو ایک تیز روٹ اور فال بیک کے ساتھ استعمال کریں۔ OTP ڈیلیوری کے بہترین طریقوں کو دیکھیں۔

Android SMS Retriever API کیسے کام کرتا ہے؟

SMS Retriever API آپ کی Android ایپ کو SMS ریڈ پرمیشن مانگے بغیر تصدیقی میسج وصول کرنے کی اجازت دیتا ہے۔ Google کی دستاویزات میسج کے لیے تین اصول مقرر کرتی ہیں:

  • 140 بائٹس سے زیادہ نہ ہو؛
  • اس میں وہ ون ٹائم کوڈ شامل ہو جو ایپ آپ کے سرور کو واپس بھیجتی ہے؛
  • اس میں 11 کریکٹرز پر مشتمل ہیش اسٹرنگ شامل ہو جو آپ کی ایپ کی شناخت کرتی ہو۔

ہیش (hash) کا حساب آپ کی ایپ کے پیکیج نیم اور اس کے سائننگ سرٹیفکیٹ سے لگایا جاتا ہے: سرٹیفکیٹ کی ہیکساڈیسیمل (hex) شکل کے ساتھ پیکیج نیم کو جوڑیں، SHA-256 لیں، اسے base64-encode کریں اور پہلے 11 کریکٹرز کو برقرار رکھیں۔ ڈیبگ (debug) اور ریلیز (release) بلڈز عام طور پر مختلف کیز (keys) کے ساتھ سائن کیے جاتے ہیں، اس لیے ان کے ہیش مختلف ہوتے ہیں۔ آپ کا سرور میسج بناتے وقت درست ہیش شامل کر دیتا ہے۔

جب آپ میسج میں ایپ ہیش نہیں ڈال سکتے، مثال کے طور پر اس لیے کہ ٹیمپلیٹ دوسرے چینلز کے ساتھ شیئر کیا گیا ہے، تو Android کا SMS User Consent API صارف کو ایک پرامپٹ دکھاتا ہے تاکہ آپ کی ایپ ایک میسج پڑھ سکے۔ Google کے مطابق، میسج میں 4 سے 10 کریکٹرز پر مشتمل الفابیٹک اور نمبر والی اسٹرنگ ہونا لازمی ہے جس میں کم از کم ایک نمبر ہو، اور اگر آپ نے سینڈر متعین کیا ہے، تو یہ اسی سینڈر سے آنا چاہیے۔ API شروع کرنے کے بعد تقریباً پانچ منٹ تک سنتا ہے اور پھر ٹائم آؤٹ ہو جاتا ہے۔

iOS پر OTP autofill کیسے کام کرتا ہے؟

iOS کی بورڈ سے سیکیورٹی کوڈ کا autofill فراہم کرتا ہے۔ ایک نیٹو ایپ (native app) میں، ٹیکسٹ فیلڈ کے textContentType کو oneTimeCode پر سیٹ کریں؛ ویب پیج پر، ان پٹ میں autocomplete="one-time-code" شامل کریں۔ جب مماثل SMS موصول ہوتا ہے، تو کوڈ کی بورڈ کے اوپر ظاہر ہوتا ہے اور صارف اس پر ٹیپ کرتا ہے۔ Safari WebOTP JavaScript API کو نافذ نہیں کرتا، لیکن Chrome کی WebOTP دستاویزات میں نوٹ کیا گیا ہے کہ autocomplete annotation کے ساتھ ڈیفالٹ کی بورڈ کوڈ تجویز کرتا ہے اگر SMS نیچے دیے گئے ڈومین سے منسلک فارمیٹ کے مطابق ہو (iOS 14 اور macOS Big Sur یا اس کے بعد کے ورژن)۔

WebOTP میسج فارمیٹ کیا ہے؟

WebOTP API ایک ویب پیج کو navigator.credentials.get({ otp: { transport: ['sms'] } }) کے ساتھ کوڈ پڑھنے کی اجازت دیتا ہے۔ SMS کا آغاز انسان کے پڑھنے کے قابل ٹیکسٹ سے ہونا لازمی ہے اور اس کا اختتام اس فارمیٹ میں آخری لائن پر ہونا چاہیے:

snippet
Your BroadNet code is 482913.
@www.example.com #482913
  • آخری لائن @ اور اس پیج کے ڈومین سے شروع ہوتی ہے جو کوڈ کے لیے پوچھ رہا ہے۔
  • ایک سپیس، پھر # اور کوڈ۔
  • ڈومین میں کوئی سکیم، پورٹ یا پاتھ نہیں ہونا چاہیے، اور اس کے اندر کوئی سپیس بھی نہیں ہونی چاہیے۔
  • انسانی طور پر پڑھنے والے حصے میں کوڈ بھی شامل ہونا چاہیے، تاکہ وہ لوگ بھی اسے پڑھ سکیں جو میسج پڑھتے ہیں۔

ان پٹ میں بھی ہمیشہ autocomplete="one-time-code" کو برقرار رکھیں، تاکہ WebOTP کے بغیر براؤزرز بھی کوڈ پیش کر سکیں۔

کیا ایک SMS ٹیمپلیٹ ہر پلیٹ فارم پر کام کر سکتا ہے؟

جی ہاں، اگر یہ Android کے بائٹ لمٹ کے اندر رہے اور لائنیں درست ترتیب میں ہوں۔ ایک مشترکہ ٹیمپلیٹ:

snippet
Your BroadNet code is 482913. Do not share it.
FA+9qCX9VSu
@www.example.com #482913
پلیٹ فارمکوڈ کون پڑھتا ہےمیسج کے لیے کیا ضروری ہے
Android ایپSMS Retriever APIکوڈ اور آپ کا 11 کریکٹرز پر مشتمل ایپ ہیش؛ زیادہ سے زیادہ 140 بائٹس
Android ایپ (بغیر ہیش کے)SMS User Consent API4–10 کریکٹرز پر مشتمل ایک الفابیٹک کوڈ جس میں کم از کم ایک نمبر ہو
iOS ایپسیکیورٹی کوڈ آٹو فل (oneTimeCode)ایک قابلِ شناخت کوڈ؛ ڈومین سے منسلک لائن کی سفارش کی جاتی ہے
Safari (iOS, macOS)autocomplete="one-time-code"آخری لائن @domain #code
Chrome (Android, desktop)WebOTP APIآخری لائن @domain #code

یہاں دکھایا گیا ہیش ایک پلیس ہولڈر ہے: اپنی ایپ کی اصل ویلیو استعمال کریں۔ ٹیمپلیٹ کو GSM-7 کریکٹر سیٹ میں رکھیں تاکہ یہ ایک ہی سیگمنٹ رہے؛ کوئی ایموجی یا ایکسنٹڈ لیٹر (accented letter) پورے میسج کو Unicode میں تبدیل کر دیتا ہے، جس سے جگہ آدھی رہ جاتی ہے اور 140-بائٹ کا بجٹ متاثر ہو سکتا ہے۔ SMS انکوڈنگ اور سیگمنٹیشن دیکھیں۔

آپ BroadNet کے ذریعے یہ میسجز کیسے بھیجتے ہیں؟

اپنے سرور پر میسج بنائیں اور اسے OTP API یا SMS API کے ذریعے بھیجیں؛ نیو لائنز (newlines) میسج ٹیکسٹ کا حصہ ہیں۔ جب کوڈ موصول نہ ہو تو BroadNet کی OTP پروڈکٹ SMS، WhatsApp، وائس اور Flash Call پر فال بیک کرتی ہے، اور MyOTP.App ایک ہی اکاؤنٹ سے SMS، WhatsApp یا Telegram کے ذریعے کوڈز بھیجتا ہے۔ پورے فلو کے لیے، OTP فلو کیسے بنائیں اور ہماری ملٹی چینل OTP تصدیق گائیڈ پڑھیں۔

اکثر پوچھے جانے والے سوالات

میری Android ایپ OTP SMS کیوں نہیں پڑھ رہی ہے؟

عام طور پر میسج میں موجود ایپ ہیش بلڈ (build) سے میچ نہیں کرتا (debug اور release keys مختلف ہوتی ہیں)، میسج 140 بائٹس سے زیادہ لمبا ہے، یا لسنر (listener) میسج پہنچنے کے بعد شروع ہوا ہے۔

کیا مجھے Android پر کوڈز کو خودکار طور پر بھرنے (autofill) کے لیے SMS پرمیشن کی ضرورت ہے؟

نہیں۔ SMS Retriever API اور SMS User Consent API دونوں SMS ریڈ پرمیشن کے بغیر کام کرتے ہیں۔

میں iOS پر OTP autofill کیسے فعال کر سکتا ہوں؟

کسی نیٹو ایپ میں textContentType کو oneTimeCode پر سیٹ کریں، یا ویب پیج پر ان پٹ میں autocomplete="one-time-code" شامل کریں۔

WebOTP SMS فارمیٹ کیا ہے؟

پہلے انسان کے پڑھنے کے قابل متن، پھر آخری لائن میں @ کے بعد آپ کا ڈومین، ایک سپیس، پھر # اور کوڈ، مثال کے طور پر @www.example.com #482913۔

کیا WebOTP Safari میں کام کرتا ہے؟

Safari WebOTP JavaScript API کو سپورٹ نہیں کرتا، لیکن autocomplete="one-time-code" کے ساتھ اس کا کی بورڈ ڈومین سے منسلک فارمیٹ میں موجود میسجز سے کوڈز تجویز کرتا ہے۔

کیا میں Android، iOS اور ویب کے لیے ایک ہی ٹیمپلیٹ استعمال کر سکتا ہوں؟

جی ہاں: متن میں کوڈ، اپنی الگ لائن پر ایپ ہیش، اور آخر میں ڈومین سے منسلک لائن، یہ سب 140 بائٹس کے اندر ہونا چاہیے۔

پلیٹ فارم کے قواعد 28 ستمبر 2026 کو Google کی SMS Retriever اور SMS User Consent دستاویزات (developers.google.com) اور Chrome کی WebOTP دستاویزات (developer.chrome.com) میں پڑھے گئے۔ ہمارے ادارتی معیارات دیکھیں۔

کیا یہ مفید تھا؟

ہم مواد کیسے لکھتے اور جانچتے ہیں

تحریر کردہ

BroadNet ایڈیٹوریل ٹیم

ایڈیٹوریل ٹیم BroadNet بلاگ شائع کرتی ہے۔ مضامین BroadNet کی ریگولیٹری امور، پروڈکٹ، انجینئرنگ، انڈسٹری ریسرچ اور آپریٹر سلوشنز ٹیموں کے ساتھ مل کر لکھے جاتے ہیں، اور ہمارے ادارتی معیارات کے تحت ان کا جائزہ لیا جاتا ہے۔

پڑھنا جاری رکھیں

جرنل سے مزید تین مضامین۔

تمام مضامین دیکھیں
ک
انجینئرنگ

کوڈ کے ذریعے SMS کیسے بھیجیں: Python، PHP، Node.js، Java، Go اور C# کے لیے صرف ایک REST کال

کوڈ کے ذریعے SMS بھیجنا ایک مستند HTTPS POST ہے: ایک Bearer ٹوکن، سینڈر ID، منزل کا نمبر، پیغام اور پیغام کی قسم کے ساتھ ایک JSON باڈی، اور واپس آنے والا ایک میسج ID۔ یہاں Python، PHP، Node.js، Java، Go اور C# میں وہی درخواست، نیز ایرر ہینڈلنگ اور پروڈکشن کے مشورے دیے گئے ہیں۔

BroadNet ایڈیٹوریل ٹیم
9m
ک
انجینئرنگ

کوڈ بھیجنے سے پہلے: OTP کے لیے MobileValidate اور BroadNet کے ساتھ ایک پری-سینڈ چیک روٹین

پری-سینڈ چیک، صارف کے فون نمبر ٹائپ کرنے کے لمحے اور آپ کے کوڈ بھیجنے کے لمحے کے درمیان ایک لک اپ (lookup) ہے۔ یہ ان نمبروں کی نشاندہی کرتا ہے جو OTP وصول نہیں کر سکتے، اضافی احتیاط کے لیے پرخطر پیٹرنز کو فلیگ کرتا ہے اور چینل کا انتخاب کرتا ہے۔ یہاں MobileValidate اور BroadNet کے ساتھ روٹین دی گئی ہے، جس میں ہر نتیجے کے لیے ایک فیصلہ کرنے والا ٹیبل (decision table) موجود ہے۔

BroadNet ایڈیٹوریل ٹیم
9m
ا
انجینئرنگ

ای میل ٹو SMS: ای میل ٹو SMS گیٹ وے کیسے کام کرتا ہے، اسے کب استعمال کرنا چاہیے اور اسے کیسے محفوظ بنایا جائے

ای میل ٹو SMS گیٹ وے ایک ایسے ای میل کو جو فون نمبر پر بھیجا گیا ہو، ٹیکسٹ میسج میں تبدیل کر دیتا ہے، تاکہ مانیٹرنگ ٹولز، ہیلپ ڈیسک اور پرانے سسٹمز جو صرف ای میل بھیج سکتے ہیں، SMS کے ذریعے لوگوں تک پہنچ سکیں۔ یہاں بتایا گیا ہے کہ یہ کیسے کام کرتا ہے، یہ API سے بہتر کب ہے، اور اس کو جعلی ای میلز سے کیسے محفوظ بنایا جائے۔

BroadNet ایڈیٹوریل ٹیم
7m
جرنل، ای میل کے ذریعے

مہینے میں ایک مضمون۔ اس کے علاوہ کچھ نہیں۔

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

ہم مہینے میں ایک ای میل بھیجتے ہیں۔ کسی بھی وقت ان سبسکرائب کریں۔ ہماری پرائیویسی پالیسی.

آپ کو کیا ملے گا
  • تفصیلی مضامین، نہ کہ صرف کلک حاصل کرنے والے لنکس
    کسی ایک موضوع پر چھ سے گیارہ منٹ کے مرکوز تحریری مواد۔
  • آپریٹرز کی تحریر کردہ
    ان ہاؤس انجینئرز، ریگولیٹری لیڈز اور پروڈکٹ رائٹرز کی تحریر۔
  • علاقائی معلومات کے مطابق
    ریگولیٹرز، آپریٹرز اور چینل مکس کے بارے میں مشرق وسطیٰ اور شمالی افریقہ کا مستند نقطہ نظر۔
  • مہینے میں ایک بار
    کوئی ڈرپ مہم نہیں۔ جب کچھ شیئر کرنے کے لیے ہو، تو صرف ایک مضمون۔
پڑھنا بند کریں۔ کام شروع کریں۔

ہم جو کچھ بھی لکھتے ہیں، اس میں سے زیادہ تر ہم نے عملی کام کے دوران سیکھا ہے۔

اگر اس تحریر نے آپ کو متفق کیا ہے، تو شاید ہمیں بات کرنی چاہیے۔ اپنا یوز کیس (use case)، والیومز اور مارکیٹس لے کر آئیں — ہم روٹنگ، قیمتیں اور ایک ریفرنس کسٹمر کے ساتھ واپس آئیں گے جسے آپ کال کر سکتے ہیں۔

$ curl -X POST https://api.broadnet.me/sms/sendSms