کدهای ورود یکبار مصرف (One-Time Password) حیاتیترین بخش ثبتنام، ورود بدون رمز عبور و احراز هویت مالی در پلتفرمهای اینترنتی ایران هستند. در این راهنما صفر تا صد پیادهسازی سریعترین مسیر ارسال OTP با وبسرویس پترن فری اس ام اس را بررسی میکنیم.
چالش بلکلیست مخابرات و چرایی نیاز به وبسرویس پترن
طبق آمارهای رسمی رگولاتوری، بیش از ۶۰ درصد شمارههای فعال در اپراتورهای همراه اول و ایرانسل کدهای *800# را شمارهگیری کرده و دریافت پیامکهای تبلیغاتی را مسدود کردهاند. اگر شما برای ارسال کد تایید ورود یا فاکتور سفارش از خطوط معمولی تبلیغاتی استفاده کنید، پیامک شما به این دسته از کاربران نخواهد رسید و کاربر از فرایند خرید یا ثبتنام منصرف میشود.
پترن (الگوی پیامک) چیست و چگونه کار میکند؟
به منظور رعایت قوانین سازمان تنظیم مقررات و جلوگیری از ارسال هرزنامه از خطوط خدماتی، پیامکهای اعتبارسنجی در قالب پترن (الگو) از پیش تعریف میشوند. در یک پترن، متن ثابت است و فقط متغیرها (نظیر کد تایید، نام کاربر یا شماره سفارش) به صورت پارامتر جایگزین میشوند:
کد تایید ورود شما به سایت فری اس ام اس: %code%
لغو ۱۱
چون این قالب قبلاً توسط ناظران هوش مصنوعی و اپراتورهای مخابراتی تایید شده است، هنگام فراخوانی API پیامک در صف بررسی اپراتور معطل نمیشود و به صورت مستقیم و آنی (زیر ۲ ثانیه) به مخابرات تزریق میشود.
مشخصات اندپوینت ارسال OTP
آدرس پایه وبسرویس: https://api.free-sms.ir/v1
برای ارسال کد تایید، یک درخواست POST به اندپوینت /otp ارسال کنید:
| پارامتر | نوع داده | الزامی؟ | توضیحات |
|---|---|---|---|
| to | String | بله | شماره موبایل گیرنده با فرمت 09xxxxxxxxx |
| pattern_code | String | بله | کد شناسه الگوی تایید شده در پنل کاربری |
| params | Object | بله | کلید و مقدارهای متغیرهای پترن (مثلاً code: 12345) |
نمونه کد اجرایی در پایتون (Python Requests)
نمونه کد اجرایی در جاوااسکریپت / نودجیاس (Node.js Axios)
نمونه پاسخ موفق و ساختار بازگشتی JSON
بهترین اقدامات امنیتی در پیادهسازی OTP (جلوگیری از SMS Fraud)
- محدودیت تعداد درخواست (Rate Limiting): اجازه ندهید یک شماره در هر ۲ دقیقه بیش از یک بار کد تایید درخواست کند.
- محدودسازی بر اساس آدرس IP: مانع از ارسال اسپم و فیشینگ توسط باتهای اینترنتی شوید.
- کپچا (CAPTCHA): در صورتی که کاربری چندین بار متوالی درخواست پیامک تکراری ارسال کرد، کپچای نامرئی را فعال کنید.
- جایگزینی تماس صوتی (Voice OTP Fallback): اگر کاربر در منطقهای بدون پوشش آنتن دکل مخابراتی باشد، پس از ۹۰ ثانیه گزینه «دریافت تماس صوتی کد تایید» را در اختیار او بگذارید.
سوالات متداول
چرا پیامکهای OTP باید با خط خدماتی ارسال شوند؟+
بیش از ۶۰ درصد کاربران دریافت پیامک تبلیغاتی را مسدود کردهاند. خطوط خدماتی اشتراکی این فیلتر را دور زده و کد تایید را ۱۰۰٪ تحویل میدهند.
سرعت ارسال کد با وبسرویس پترن چقدر است؟+
میانگین زمان تحویل پیامکهای OTP در سامانه فری اس ام اس بین ۲ الی ۳ ثانیه است که بالاترین رکورد سرعت در میان اپراتورهای پیامکی کشور است.
آیا ثبت پترن هزینه دارد؟+
خیر، ثبت و تایید پترنها در فری اس ام اس کاملاً رایگان است و ظرف کمتر از ۱۵ دقیقه توسط پشتیبانی بررسی و تایید میگردد.
زمان تحویل (Delivery Latency) پیامکهای OTP در فری اس ام اس چقدر است؟+
ارسال پترن از صفهای اولویتدار فوق سریع عبور کرده و به طور میانگین بین ۲ تا ۳ ثانیه بر روی گوشی مخاطب دریافت میشود.
آیا برای استفاده از خط خدماتی پترن نیاز به ارائه سفته یا ثبت شرکت رسمی دارم؟+
خیر، خطوط خدماتی اشتراکی فری اس ام اس برای تمام کاربران حقیقی و حقوقی بلافاصله پس از ثبت نام و احراز هویت اولیه کاملاً رایگان و فعال است.
در صورت نرسیدن پیامک به دلیل عدم آنتندهی مخاطب چه راهکاری وجود دارد؟+
اندپوینت صوتی Voice OTP در وبسرویس فری اس ام اس فعال است؛ چنانچه کاربر پیامک را دریافت نکرد، میتوانید با یک فراخوانی خودکار تماس صوتی برقرار کرده و کد را برای مخاطب بخوانید.