راه‌اندازی سرویس

    API Endpoint

    https://my.mrotp.ir/api/OTP/v1/    
                

برای استفاده از این سرویس ابتدا باید در سایت MrOTP.ir ثبت‌نام نموده و پس از درخواست استفاده از سرویس USSD، SMS و Voice OTP برای شما API Key صادر شده و می‌توانید از توابع این وب‌سرویس استفاده کنید.

برای اطلاعات بیشتر به سایت https://mrotp.ir مراجعه نمائید.

برای استفاده از این وب‌سرویس پنج تابع درنظر گرفته شده است:
1- setOTP: با این تابع می‌توانید رمز مورد نظر خودتان را برای شماره موبایل مشخص و برای مدت زمان اعتبار دلخواه در سیستم درج نمائید.
2- setRandomOTP: با این تابع می‌توانید تعداد رقم‌های رمز مورد نظرتان را مشخص نمائید تا سیستم به صورت اتوماتیک یک رمز تصادفی برای مدت زمان مشخص شده توسط شما برای شماره موبایل مورد نظرتان در سیستم درج نموده و در خروجی به شما تحویل نماید تا در صورت نیاز در دیتابیس سمت خودتان نیز ذخیره کنید.
3- verifyOTP: پس از شماره‌گیری کد USSD توسط کاربر و مشاهده و ثبت کد در سایت و یا اپلیکیشن شما، نیاز است تا آن را با سیستم ما چک نموده و از اعتبار و درست بودن رمز مطمئن شوید. به وسیله این تابع و ارسال شماره موبایل و OTP وارد شده توسط کاربر می‌توانید وضعیت آن را بررسی نمائید.
4- sendPatternSMS: در صورت نياز به اطلاع رساني کاربران باخط خدماتي و دريافت 100 درصدي کاربران مي‌توانيد متن مورد نظر را با پارامترهاي آن در پنل کاربري تعريف نموده و با فراخواني اين تابع و ارسال پارامترها از خط خدماتي ما به کاربران پيامک دهيد. براي مثال:
{0} {1} گرامي سفارش شما با کد پيگيري {2} تحويل اداره پست گرديد.
حال با فراخواني تابع و ارسال نام، نام خانوادگي و شماره پيگيري محصول، اين مقادير با {0} {1} {2} جايگزين شده و پيامک براي کاربر ارسال خواهد شد.
5- getCredit: توسط فراخوانی این تابع می‌توانید مقدار شارژ پنل خود را به ریال چک نمائید تا در صورت نیاز به شارژ پنل اقدام نمائید. البته به صورت خودکار در صورت پایین آمدن حساب از مبلغ 100 هزار ریال سیستم بصورت اتوماتیک یکبار شما را به صورت پیامکی مطلع می‌سازد.
6- getUSSD: این تابع برای اطلاع شما از کد USSD فعال برای استعلام رمز یکبارمصرف کاربرد دارد. البته در هر دو تابع درج کد یکبارمصرف USSD، در خروجی تابع و در پارامتر USSD این مقدار به شما پاس داده خواهد شد اما در صورت نیاز در هر زمان می‌توانید بدون درج رمز یکبارمصرف و رایگان از این تابع استفاده نمائید.

کاربر با شماره‌گیری کدي که در خروجي توابع با نام USSD در پاسخ سرور وجود دارد مي‌تواند رمز يکبار مصرف خود را مشاهده نمايد. در حال حاضر يکي از اين دو کد به شما پاس داده خواهد شد. نکته بعدي اينکه در هر لحظه با فراخواني تابع getUSSD مي‌توانيد کد USSD را دريافت نمائيد.

*500*1234567#
*6655*100200300#

setOTP تابع


php نمونه کد:
        $curl = curl_init();              
        curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/setOTP',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key','mobile' => 'mobile number','OTP' => 'your OTP','validTime' => '1 to 1440'),
        ));
        
        $response = curl_exec($curl);
        
        curl_close($curl);
        echo $response;  

                

به وسیله این تابع یک رمز OTP برای شماره موبایل مورد نظرتان در سیستم درج می‌کنید. :

https://my.mrotp.ir/api/OTP/v1/setOTP



نمونه خروجی :

{
    "code": 10236,
    "USSD": *500*1234567#,
    "message": "OTP(4321) Successfully registered for mobile number 09121112233 for 1 minutes."
}
                

و در Body درخواست.POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.
mobile String Body شماره موبایلی که می‌خواهید برای او رمز یکبارمصرف درج کنید با فرمت (09121112233).
OTP Integer Body یک عدد تصادفی 3 تا 8 رقمی که همان رمز یکبار مصرف مورد نظر شماست.
validTime Integer Body میزان عمر رمز OTP شماست که می‌تواند عددی بین 1 تا 1440 دقیقه یعنی 24 ساعت باشد.
type string Body این فیلد باید با یکی از سه مقدار SMS، USSD و يا VOICE پر شود و مشخص می‌کند کد یکبار مصرف در زیرساخت USSD تعریف گردد و یا به صورت پیامک و يا پيامک صوتي (گفتاري) برای کاربر ارسال گردد.

* در صورتی که در خروجی این تابع در پارامتر code عددی بالاتر از 100 دریافت کردید به این معناست که کد با موفقیت درج شده است. در صورت وجود خطا کد خطای مورد نظر و توضیحات آن برگردانده می‌شود.

* پارامتر USSD نيز کدي که کاربر بايد شماره‌گيري کند تا OTP مورد نظر را ببيند برمي‌گرداند.

setRandomOTP تابع


php نمونه کد:
$curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/setRandomOTP',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key','mobile' => 'mobile number','length' => 'length f OTP(3 to 8)','validTime' => '1 to 1440'),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;

                

به وسیله این تابع یک رمز OTP برای شماره موبایل مورد نظرتان در سیستم درج می‌کنید با این تفاوت که شما فقط طول رمز را که عددی بین 3 تا 8 رقم است را ارسال نموده و سیستم به صورت تصادفی رمز را تولید و پس از ثبت در سیستم آن را با عنوان OTP به شما در خروجی تحویل می‌دهد. این کد را می‌توانید در سمت خودتان ذخیره کنید.

https://my.mrotp.ir/api/OTP/v1/setRandomOTP



نمونه خروجی :

{
    "code": 101,
    "OTP": 53398,
    "USSD": *500*1234567#,
    "message": "OTP(53398) Successfully registered for mobile number 09121113344 for 1 minutes."
}

                

POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.
mobile String Body شماره موبایلی که می‌خواهید برای او رمز یکبارمصرف درج کنید با فرمت (09121112233).
length Integer Body طول رمز مورد نظر شماست که می‌تواند عددی بین 3 تا 8 باشد.
validTime Integer Body میزان عمر رمز OTP شماست که می‌تواند عددی بین 1 تا 1440 دقیقه یعنی 24 ساعت باشد.
type string Body این فیلد باید با یکی از سه مقدار SMS، USSD و يا VOICE پر شود و مشخص می‌کند کد یکبار مصرف در زیرساخت USSD تعریف گردد و یا به صورت پیامک و يا پيامک صوتي (گفتاري) برای کاربر ارسال گردد.

*در صورتی که در خروجی این تابع در پارامتر code عددی بالاتر از 100 دریافت کردید به این معناست که کد با موفقیت درج شده است. رمز تولید شده نیز در متغیر OTP برای شما در خروجی برگردانده می‌شود. در صورت وجود خطا کد خطای مورد نظر و توضیحات آن برگردانده می‌شود.

* پارامتر USSD نيز کدي که کاربر بايد شماره‌گيري کند تا OTP مورد نظر را ببيند برمي‌گرداند.

verifyOTP تابع


php نمونه کد:
                $curl = curl_init();

                curl_setopt_array($curl, array(
                CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/verifyOTP',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => '',
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => 'POST',
                CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key','mobile' => 'mobile number','OTP' => 'your OTP for Search'),
                ));

                $response = curl_exec($curl);

                curl_close($curl);
                echo $response;
         
                

این تابع شما را از بسیاری از عملیات مانند نگهداری رمزهای یکبارمصرف، چک کردن طول عمر آن‌ها و... رهایی بخشیده و فقط کافیست رمز وارد شده توسط کاربر در اپلیکیشن و یا وب‌سایتتان را به این تابع ارسال نموده و در صورتی که این رمز توسط یکی از دوتابع قبلی برای شما تعریف شده و مدت زمان انقضای آن نیز فرا نرسیده باشد پیام مناسب در خروجی برگردانده می‌گردد..

https://my.mrotp.ir/api/OTP/v1/verifyOTP



نمونه خروجی :

{
    "code": 1315,
    "OTP": 4321,
    "mobile": "09121113344",
    "accept": "YES",
    "message": "OTP(4321) Successfully verify for mobile number 09183178622."
}


                

POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.
mobile String Body شماره موبایلی که می‌خواهید برای او رمز یکبارمصرف را بررسی کنید. با فرمت (09121112233).
OTP Integer Body یک عدد تصادفی 3 تا 8 رقمی که همان رمز یکبار مصرف (OTP) مورد نظر شما جهت بررسی بوده که کاربر در سایت یا اپلیکیشن وارد کرده است.

در صورتی که در خروجی این تابع در پارامتر accept مقدار YES را دریافت کردید یعنی این کد برای آن شماره موبایل در سیستم موجود و از زمان انقضای آن نیز نگذشته است. در صورت انقضای کد و یا نامعتبر بودن اطلاعات دیگر، این متغیر مقدار NO را برمی‌گرداند.

sendPatternSMS تابع


php نمونه کد:
                
                $curl = curl_init();

                curl_setopt_array($curl, array(
                CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/sendPatternSMS',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => '',
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => 'POST',
                CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key','mobile' => 'mobile number','patternId' => 'Pattern id','params' => 'params with «;» delimiter'),
                ));

                $response = curl_exec($curl);

                curl_close($curl);
                echo $response;
         
                

به کمک اين تابع مي‌توانيد انواع پيامک هاي اطلاع رساني را حتي براي شماره هاي فيلتر شده ارسال نمائيد. در تنظيمات سامانه در قسمت قالب هاي آماده متن مورد نظر خود را وارد نموده و براي قسمت هاي دايناميک از {} استفاده نمائيد. داخل کروشه عدد پارامتر مورد نظر قرا خواهد گرفت. پس از تائيد قالب توسط مدير مي‌توانيد با فراخواني تابع و ارسال پارامترها، اين مقادير با کروشه ها جايگزين خواهد شد. پارامترهاي ارسالي را با ; از يکديگر جدا کنيد. متن شما حداکثر مي‌تواند 10 مقدار دايناميک (کروشه با مقادير 0 تا 10) داشته باشد. تعداد کاراکتر ارسالی شما برای هر پارامتر محدود و 15 کاراکتر است. در صورت ارسال کاراکتر بیشتر با کد خطا -21 روبرو خواهید شد.

https://my.mrotp.ir/api/OTP/v1/sendPatternSMS



نمونه خروجی :

{
    "code": 1315,
    "message": "SMS pattern sent Successfully."
}


                

POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.
mobile String Body شماره موبایل گيرنده پيامک با فرمت (09121112233).
patternId Integer Body کد پترن يا قالب آماده که در صفحه قالب هاي آماده مشاهده مي‌کنيد. قالب بايد توسط مدير تاييد شده باشد.
params String Body مقادير مختلف پارامتر را به صورت بهم پيوسته و با جدا کننده ; در اين فيلد ارسال نمائيد. براي مثال در صورتي که در متن قالب آماده {0} و {1} وجود داشته باشد و در اين فيلد عبارت علي;محمدي را ارسال کنيد کلمه علي با {0} و کلمه محمدي با {1} جايگزين خواهد شد.

در صورتي که در خروجي اين تابع مقدار code عدد بزرگتر از 1000 دريافت کرديد ارسال موفقيت آميز بوده و کد پيگيري آن را نيز دريافت نموده ايد.

getCredit تابع

                    
    php نمونه کد:
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/getCredit',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key'),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
        

            
                    
                

این تابع جهت دريافت شارژ کيف پول شما طراحي شده است.

https://my.mrotp.ir/api/OTP/v1/getCredit



نمونه خروجی :

{
    "code": 1,
    "credit": "329263930",
    "message": "موجودي حساب شما 329263930 ريال مي‌باشد."
}


                

POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.

اين تابع در صورت صحت عملکرد مقدار شارژ حساب کاربري شما را برگردانده و در غير اينصورت کد خطاي مربوطه را بازمي‌گرداند.

getUSSD تابع

                    
    php نمونه کد:
    $curl = curl_init();

    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://my.mrotp.ir/api/OTP/v1/getUSSD',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => array('apiKey' => 'your api Key'),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;
        

            
                    
                

این تابع جهت دريافت کد USSD که کاربر شما براي دريافت رمز خود بايد شماره‌گيري کند طراحي شده است. دقت کنيد که در صورت فراخواني تابع setOTP اين مقدار به شما برگردانده مي‌شود و نياز به فراخواني مجدد نيست و فقط در صورتي که به هر دليلي نياز به کد USSD فعال سيستم داشته باشيد مي‌توانيد آن را صدا بزنيد.

https://my.mrotp.ir/api/OTP/v1/getUSSD



نمونه خروجی :

{
    "USSD": *500*1234567#
}


                

POST پارامترهای ارسالی به روش

Parameter Format Entry in Description
apiKey String Body صادر شده برای شما API key.

اين تابع در صورت صحت عملکرد کد USSD که کاربر بايد براي دريافت رمز يکبارمصرف خود شماره‌گيري کند را برمي‌گرداند.

خطاهای برگشتی

لازم به توضیح است که تمامی کدهای خطا در متغیری به نام message توضیح خطای بوجود آمده را همراه دارند.

Error Code Description
-1 API Key نامعتبر.
-2 شماره موبایل نامعتبر.
-3 OTP نامعتبر.
-4 زمان اعتبار کد نامعتبر.
-6 سرویس OTP برای شما غیر فعال شده است.
-7 موجودي حساب کافي نيست. کاربري خود را در سايت mrotp.ir شارژ نمائيد.
-10 خطای نامشخص.
-11 IP سیستم یا سروری که با آن توابع را فراخوانی می‌کنید با IP معرفی شده در پنل مغایرت دارد.
-12 OTP ارسالی شما به دلیل مغایرت شماره موبایل، عدم وجود در سیستم و یا گذشتن از زمان اعتبار آن تایید نشد.
-13 مشکل در احراز هویت اکانت شما.
-14 کاربر قبلا با ارسال 11 به سرشماره ارسال OTP دريافت پيامک از اين سرشماره را غير فعال کرده است. با ارسال مجدد 12 به همان سرشماره امکان ارسال مجددا فعال خواهد شد.
-15 کد معرف ارسال شده (ReferralId) معتبر نيست
-16 خطا در طول کاراکترهاي OTP
-17 خطا در بازیابی کد پترن در ارسال پیامک با قالب آماده
-18 خطا در متن قالب آماده و یا پارامترهای ارسالی
-19 قالب آماده توسط مدیر تایید نشده است.
-20 سرويس موقتا قطع مي‌باشد.
-21 خطا در طول یکی از پارامترهای ارسالی به تابع ارسال پترن
-22 پاسخی از اپراتور پیامک دریافت نشد.
-23 پاسخی از اپراتور پیامک صوتی دریافت نشد.
-24 در پارامترهای ارسالی لینک وجود دارد.