وب سرویس USSD

خدمات یو اس اس دی آی نوتی به شما این امکان را میدهد تا نرم افزار دلخواه خودتان را بر بستر کدهای یو اس اس دی برروی سرور خودتان ایجاد و مدیریت کنید.

ارسال و دریافت اطلاعات

برای استفاده از وب سرویس USSD آی نوتی ابتدا می بایست یک صفحه ی وب سایت روی سرور خود طراحی کنید که 3 پارامتر (call,sessionid,mobile) را با متد Get دریافت کند و مطابق با خدمات مورد نظرتان از این پارامترها و مقادیر ارسالی آنها در کدهای برنامه خود استفاده نمایید:

  • mobile : شماره تلفن شخص گیرنده
  • sessionid : کد جلسه کاری
  • call : رشته جاری درخواست شده

سپس مسیر کامل صفحه ی وب سایتی را که ساخته اید در بخش ویرایش کد USSD و کادر "تعیین مسیر وب سرویس"، ثبت و ذخیره می کنید.اکنون هر رشته ای که توسط مشتریان شما از طریق کد USSD ارسال شود، در متغیر Call قرار می گیرد و صفحه ی شما آن را دریافت می کند و هر عملیاتی که لازم می دانید می توانید روی آنها انجام دهید.

نمایش متن پاسخ به مخاطبان کد USSD

برای نمایش پاسخ مناسب به مشتریان، شما می بایست پس از پردازش روی کدهای دریافتی، پاسخ خود را فقط به صورت یک متن ساده بدون هیچ کاراکتر اضافی در صفحه نمایش دهید. به عنوان مثال در asp.net دستور response.write و در PHP دستور echo اینکار را انجام میدهند.

نمونه کد یک وب سرویس ساده

به عنوان مثال فرض کنید سایتی با آدرس www.mysite.com دارید و در سیستم آی نوتی کد USSD شما کد سه رقمی بدون واسطه 123 می باشد. و می خواهید هر مشتری ای که کد #123*6655 *را وارد کرد متن "لطفا کد ثبت نام خود را وارد نمایید" را مشاهده کند و پس از وارد کردن کد ثبت نام، آن را در دیتابیس خود ثبت نمایید.

برای این منظور ابتدا در وب سایت خود صفحه ی دلخواهی را می سازید به عنوان مثال myUSSD.aspx یا index.php سپس در وب سایت آی نوتی در بخش ویرایش کد USSD ، آدرس کامل صفحه را وارد میکنید : برای asp.net آدرس http://www.mySite.com/myUSSD.aspx و برای php بصورت http://www.mysite.com/index.php اکنون میتوانید از نمونه کد های زیر کمک بگیرید:

index.php

copy
    
function save_regcode()
{
        $inputArr=explode('*',$_GET['call']);
        if (is_null($_GET["mobile"]) || is_null($_GET["sessionid"]) || is_null($_GET["call"]))
     {
        echo 'http://www.mySite.com[end]';
        return;
     }
        elseif ($_GET['call']=="*6655*123") {
        echo "لطفا کد ثبت نام خود را وارد نمایید";  
     }  
        elseif (($inputArr[0]=="6655")&&($inputArr[1]=="123")) {
        $regCode=$inputArr[2];
        echo "کد ثبت نام شما با موفقیت در سیستم ثبت شد";
     }

}


myUSSD.aspx.cs

copy


protected void Page_Load(object sender, EventArgs e)
 {
 //کنترل خالی نبودن پارامترهای ورودی 
     if ((Request["mobile"] == null) || (Request["sessionid"] == null) || (Request["call"] == null))
     {
         Response.Write("http://www.mySite.com");
         return;
     }
     if (Request["call"] == "*6655*123")
     {
           Response.Write("لطفا کد ثبت نام خود را وارد نمایید");
     }
     else if (Request["call"].StartsWith("*6655*123*"))
     {
         string RegCode= Request["call"].Remove(0,10);
         //save reg code to your database
         Response.Write("کد ثبت نام شما با موفقیت در سیستم ثبت شد");
     }
 }

استفاده ار سرویس پرداخت بر خط iNoti روی وب سرویس USSD

همانطور که در مستندات مربوطه مطالعه فرمودید، از سمت iNoti صفحه ی سایت شما با 3 پارامتر call ، mobile و sessionid به صورت Get فراخوانی میشود و نهایتا یک خروجی متنی بدون هیچ کاراکتر اضافی از سمت صفحه ی شما دریافت می گردد.

برای استفاده از خدمات پرداخت خروجی صفحه ی شما می بایست به صورت زیر باشد :

9900|YourFactorId|Price

مفهوم رشته فوق در خروجی صفحه شما به ترتیب زیر است:

  • 9900 : این عدد مشخص کننده عملیات پرداخت است.
  • YourFactorId: عددی که در سیستم پرداخت شما به عنوان شماره فاکتور ثبت شده است.
  • Price : مبلغی که جهت پرداخت کاربر به ریال اعلام شده است .

** توجه داشته باشید که حتما این سه پارامتر را با pipe از یکدیگر جدا نمایید.

هر زمان خروجی صفحه ی شما این کد باشد، برای مخاطب پیامکی حاوی لینک و مشخصات پرداخت ارسال میشود . حال از نظر رفتار سیستم با 2 وضعیت روبرو خواهید شد:

پرداخت ناموفق : در این وضعیت پرداخت وی کنسل میگردد و صفحه ی سایت شما مجددا فراخوانی نخواهد شد.

پرداخت موفق : در این وضعیت متن شامل موفقیت آمیز بودن پرداخت و شناسه رهگیری به کاربر پیامک میشود و صفحه ی سایت شما با 3 پارامتر همیشگی mobile ،SessionID و Call و یک پارامتر به نام RRN که شامل کد رهگیری پرداخت است ، فراخوانی خواهد شد. همچنین در این وضعیت انتهای عبارت call شماره فاکتور شما و شماره فاکتوری که در آی نوتی ثبت شده است برایتان ارسال می گردد.

مثال پس از موفقیت آمیز بودن پرداخت صفحه ی شما با این ساختار فراخوانی می شود:

http://yoursite/page.aspx?mobile=0912xxxxxxx&sessionid=123&call=*6655*yourcode*...* yourfactorid*inotifactorid&RRN=12345...

نکته ی مهم : هنگامی که نتیجه ی تراکنش را دریافت کردید قبل از ذخیره و تایید در بانک اطلاعاتی خود می بایست از طریق وب سرویس آی نوتی معتبر بودن شماره فاکتور ها را استعلام بگیرید.

وب سرویس های استعلام پرداخت

همانطور که پیشتر ملاحظه نمودید برای ثبت نهایی فاکتورهای پرداخت شده باید اعتبار آن را از طریق وب سرویس های استعلام فاکتور پرداخت بررسی کرد. برای این منظور وب سرویس زیر را با رعایت نکاتی که در ادامه آورده شده است فراخوانی کنید.

توجه داشته باشید برای استفاده از این وب سرویس در PHP از کتابخانه nusoap استفاده شود. فایل مناسب و تست شده برای برنامه نویسان پی اچ پی در آرشیو نمونه کدها ارائه شده است.

وب سرویس استعلام پرداخت GetPayments

جهت استعلام اعتبار فاکتورها از وب سرویس آی نوتی به آدرس زیر استفاده کنید :

http://login.inoti.com/_services/ExternalUssdPay.asmx

ورودی های این وب سرویس به ترتیب زیر است :

فیلد نوع داده توضیحات
Username string نام کاربری صاحب کد در آی نوتی
Password string کلمه عبور صاحب کد در آی نوتی
CodeName string کد USSD خریداری شده
IsAll bool اگر تمام تراکنش های موفق و نا موفق را می خواهید
DateFrom string تاریخ شروع استعلام
DateTo string تاریخ پایان استعلام
SessionID string sessionid ارسال شده
PriceFrom string کف قیمت
PriceTo string سقف قیمت
Mobile string شماره موبایل مخاطب
RefKey string رسید دیجیتال
iNotiFactorID string شماره فاکتور آی نوتی
YourFactorID string شماره فاکتور سیستم شما
RRN string کد رهگیری پرداخت
NullResult string ** خروجی مطلوب برنامه نویس که جایگزین رشته JSON میشود

** خروجی این وب سرویس یک رشته است که حاوی اطلاعاتی بصورت JSON است. شما میتوانید با پر کردن این فیلد خروجی مطلوب خودتان را به عنوان رشته خروجی در صورت معتبر نبودن فاکتور پرداختی ایجاد نمایید.

خروجی های وب سرویس استعلام فاکتور

رشته ی خروجی به صورت رشته ی JSON لیست رکوردهای موجود را برای شما بر می گرداند. ساختار JSON به شرح زیر است :

فیلد نوع داده
PayID long
SessionID string
RefKeyBank string
Mobile string
Price double
Result string
PayDateTime DateTime
InotiFactorID long
YourFactorID string
RRN long

دانلود سورس کدهای آموزشی

مجموعه نمونه کدهای پی اچ پی و دات نت جهت آموزش کار با وب سرویس های اس ام اس و یو اس اس دی

دانلود سورس پی اچ پی

دانلود سورس ASP.Net