سرویس «ثبت درخواست ارسال رمز یکبار مصرف (Initiate)» در دسته پیامک و رمز یکبار مصرف فینوتک، با گرفتن شناسه کاربر و کانال ارسال، فرآیند تولید رمز یکبار مصرف را آغاز میکند و شناسه تراکنش، وضعیت جاری و مدت اعتبار رمز را برمیگرداند. این شناسه تراکنش، ورودی الزامی مرحله بعد است و تصمیم «کاربر مالک این شماره است یا نه» در گام صحتسنجی رمز یکبار مصرف (Verify) گرفته میشود.
ثبت درخواست ارسال رمز یکبار مصرف (Initiate) چه مشکلی را حل میکند؟
هر کسبوکاری که ثبتنام یا ورود کاربر دارد، دیر یا زود مجبور میشود یک سامانه رمز یکبار مصرف برای خودش بسازد: تولید کد، نگهداشتن آن، مدیریت مدت اعتبار، شمردن تلاشهای ناموفق، جلوگیری از مصرف دوباره یک کد و رسیدگی به کاربری که میگوید کد نرسیده است. این سازوکار در ظاهر کوچک است، اما همانجایی است که نشتی امنیتی و خطای پیادهسازی رخ میدهد و در عمل بخش قابل توجهی از وقت تیم فنی و پشتیبانی را میگیرد. در فرآیندهای مالی، یک ایراد در همین مرحله میتواند به دسترسی نادرست به حساب کاربر تبدیل شود.
این سرویس، مرحله نخست یک چرخه حیات یکپارچه رمز یکبار مصرف است: شناسه کاربر و کانال دلخواه ارسال را میفرستید و در پاسخ شناسه تراکنش رمز، وضعیت جاری تراکنش و مدت اعتبار کد را میگیرید. دیگر لازم نیست خود کد را تولید یا ذخیره کنید؛ فقط شناسه تراکنش را در نشست کاربر نگه میدارید و در گام بعد، کد واردشده توسط کاربر را برای صحتسنجی میفرستید. خروجی این مرحله هیچ تصمیم هویتی نمیسازد؛ کار آن باز کردن یک تراکنش قابل پیگیری و اعلام مهلتی است که رابط کاربری شما باید بر اساس آن شمارنده و امکان درخواست دوباره را نشان دهد.
کاربردهای ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
- ثبتنام کاربر در سرویسهای مالی — تأیید مالکیت شماره موبایل در نخستین قدم پرونده مشتری آغاز میشود، پیش از آنکه دادههای هویتی دیگر جمع شود.
- ورود بدون رمز عبور به اپلیکیشن — بهجای رمز ثابت، تراکنش رمز یکبار مصرف برای شماره کاربر باز میشود و ورود با کد پیامکی انجام میگیرد.
- تأیید عملیات حساس در کیف پول و بانکداری — پیش از برداشت، تغییر شماره حساب یا افزودن ذینفع، یک تراکنش تأیید برای کاربر ثبت میشود.
- تأیید پرداخت در فروشگاه اینترنتی و مارکتپلیس — در سفارشهای پرریسک، مرحله تأیید هویت خریدار پیش از نهایی شدن پرداخت آغاز میشود.
- انتخاب کانال متناسب با کاربر — امکان انتخاب میان کانالهای پیامک، USSD و ربات وجود دارد و میتوانید بر اساس شرایط کاربر کانال مناسب را برگزینید.
- ورود دومرحلهای کارکنان به پنلهای داخلی — دسترسی به پنلهای مالی و اداری با یک مرحله تأیید پیامکی افزون بر نام کاربری محدود میشود.
مزایای ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
- مدیریت چرخه حیات رمز بهجای پیادهسازی از صفر — تولید و نگهداری کد در سامانه شما انجام نمیشود و شما فقط شناسه تراکنش را مدیریت میکنید.
- اعلام مدت اعتبار در پاسخ — زمان اعتبار کد در خروجی میآید و میتوانید شمارنده و پیام «درخواست کد جدید» را در رابط کاربری دقیقاً بر همان اساس بسازید.
- چند کانال ارسال در یک سرویس — انتخاب کانال بخشی از درخواست است و لازم نیست برای هر کانال مسیر جداگانهای در محصول خود بسازید.
- تراکنش قابل پیگیری — شناسه تراکنش رمز، مرحله آغاز و مرحله صحتسنجی را به هم گره میزند و رسیدگی به موارد اختلافی را ساده میکند.
- وضعیت مشخص از همان ابتدا — وضعیت جاری تراکنش در پاسخ میآید و میتوانید جریان رابط کاربری را بر اساس آن هدایت کنید.
چه چیزی از ثبت درخواست ارسال رمز یکبار مصرف (Initiate) دریافت میکنید؟
جزئیات ورودی، خروجی و نمونه پاسخ در مستندات فنی آمده است.
جریان کار ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
- ۱. ساخت کلاینت و گرفتن توکن — با اسکوپ
messaging:otp-initiate:postتوکن Client Credential بگیرید. - ۲. ثبت درخواست ارسال رمز — شناسه کاربر و کانال ارسال را همراه یک
trackIdیکتا بفرستید. - ۳. نگهداشتن شناسه تراکنش — شناسه تراکنش بازگشتی را به نشست کاربر گره بزنید و آن را در سمت سرور نگه دارید، نه در مرورگر.
- ۴. هدایت رابط کاربری — بر اساس مدت اعتبار اعلامشده، شمارنده و امکان درخواست دوباره را به کاربر نشان دهید.
- ۵. رفتن به مرحله صحتسنجی — کد واردشده توسط کاربر را همراه همان شناسه تراکنش به صحتسنجی رمز یکبار مصرف (Verify) بفرستید و نتیجه را در پرونده کاربر ثبت کنید.
نحوه شروع ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
این سرویس با رویکرد Client Credential (بدون رضایت پیامکی) فراخوانی میشود. اسکوپ مورد نیاز: messaging:otp-initiate:post. ابتدا کلاینت بسازید و توکن بگیرید: راهنمای شروع. سپس از مستندات فنی برای پیادهسازی استفاده کنید.
محدودیتها و نکات ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
- این مرحله بهتنهایی هیچ تأییدی صادر نمیکند؛ تا زمانی که مرحله صحتسنجی با نتیجه موفق انجام نشود، کاربر را تأییدشده در نظر نگیرید.
- شناسه تراکنش بازگشتی برای مرحله صحتسنجی الزامی است؛ اگر آن را گم کنید، باید چرخه را از ابتدا آغاز کنید.
- کد یکبار مصرف مدت اعتبار محدودی دارد که در پاسخ اعلام میشود؛ منطق سمت خود را بر همان مقدار ببندید و عدد ثابتی را در کد خود فرض نکنید.
- انتخاب کانال ارسال بخشی از درخواست است؛ پیش از فراخوانی مشخص کنید کاربر شما با کدام کانال پوشش داده میشود.
- شناسه پیگیری هر فراخوانی حداکثر ۴۰ کاراکتر حرف و عدد است و استفاده از UUID توصیه میشود؛ برای هر درخواست مقدار یکتا بفرستید.
- برای درخواستهای پرتکرار از یک شناسه کاربر، در سمت خود محدودیت و فاصله زمانی تعریف کنید تا مسیر تأیید به ابزار ارسال انبوه تبدیل نشود.
- شناسه تراکنش و شماره کاربر را در لاگهای عمومی و پاسخهای سمت مرورگر منتشر نکنید.
سوالات متداول ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
«ثبت درخواست ارسال رمز یکبار مصرف (Initiate)» چیست؟
مرحله نخست چرخه رمز یکبار مصرف است که با گرفتن شناسه کاربر و کانال ارسال، تولید رمز را آغاز میکند و شناسه تراکنش، وضعیت جاری و مدت اعتبار کد را برمیگرداند.
تفاوت این سرویس با ارسال پیامک کد تأیید چیست؟
در این مسیر، تولید و صحتسنجی رمز بهصورت یکپارچه مدیریت میشود؛ اما در ارسال پیامک کد تأیید (OTP) کد را خودتان میسازید و بررسی میکنید و فقط متن پیام ارسال میشود.
بعد از این مرحله چه کاری باید انجام دهم؟
کد واردشده توسط کاربر را همراه شناسه تراکنش به صحتسنجی رمز یکبار مصرف (Verify) بفرستید؛ نتیجه نهایی تأیید در همان مرحله اعلام میشود.
اگر کاربر کد را وارد نکند یا مهلت بگذرد چه میشود؟
پس از پایان مدت اعتبار، کد قابل استفاده نیست و باید چرخه را با یک درخواست تازه آغاز کنید؛ در رابط کاربری امکان درخواست دوباره را پیشبینی کنید.
مستندات فنی این سرویس کجاست؟
صفحه مشخصات API شامل endpoint، پارامترها و نمونه پاسخ است.
چه نوع احراز هویتی لازم است؟
Grant type: client_credentials. جزئیات در راهنمای توکن.
آیا رضایت پیامکی کاربر لازم است؟
خیر. این سرویس با Client Credential و بدون رضایت پیامکی قابل فراخوانی است.
مستندات فنی ثبت درخواست ارسال رمز یکبار مصرف (Initiate)
مشاهده مستندات فنی «ثبت درخواست ارسال رمز یکبار مصرف (Initiate)» — endpoint، پارامترها، نمونه درخواست و پاسخ.