مستندات برای توسعه دهندگان
برای ارتباط با سرویس های سامانه آنک باید اطلاعات زیر را در اختیار داشته باشید. در صورتی که هر یک از این اطلاعات را در اختیار ندارید لطفا با پشتیبان سامانه تماس حاصل نمایید:
نام کاربری ثبت شده در سامانه register.abrish.ir
این نام کاربری یک بار و د ر زمان ثبت نام شما در سامانه abrish توسط خود شما و یا توسط پشتیبان سامانه تولید شده است. در صورتی که نام کاربری خود را در اختیار ندارید لطفا با پشتیبان سامانه ارتباط برقرار نمایید. این نام کاربری معمولا آدرس رایانامه رابط مشتری با شرکت سماتوس می باشد. در این متن از این پس به این نام کاربری RegisterName گفته خواهد شد.
کلید درهم سازی
چنانچه این کلید را تا کنون دریافت ننموده اید، آن را به صورتی امن از پشتیبان سامانه دریافت نمایید. از این پس به این کلید APIKey گفته خواهد شد.
نحوه تولید یک درخواست
برای ایجاد یک درخواست لازم است یک درخواست به آدرس https://register.abrish.ir/service.php ارسال گردد. برای این درخواست دو پارامتر params و checksum به صورت POST باید ارسال شوند.
- پارامتر params یک متغیر از نوع رشته است که محتوای آن یک شیء با قالب JSON می باشد. این پارامتر به صورت ثابت دارای اجزاء زیر می باشد:
- serviceusername: این همان RegisterName است که باید در هر درخواست ارسال شود.
- mod: این عضو نام ماژولی است که قرار است فراخوانی شود. در توضیحات بخش های بعد هر یک از ماژول ها شرح داده خواهند شد.
- action: نام تابعی از ماژول انتخاب شده است که قرار است فراخوانی شود. مقادیر ممکن برای این پارامتر ورودی نیز در بخش های بعدی توضیح داده خواهند شد.
- پارامتر checksum به این صورت محاسبه می شود:
- پارامتر params یک متغیر از نوع رشته است که محتوای آن یک شیء با قالب JSON می باشد. این پارامتر به صورت ثابت دارای اجزاء زیر می باشد:
checksum=SHA1(params+APIKey)
به عبارتی checksum عبارت است از درهم سازی رشته حاصل از اتصال APIKey به انتهای params که این متغیر وظیفه اصلی احراز هویت را برعهده دارد. توجه نمایید تحت هیچ شرایطی APIKey را به صورت متن ارسال نمایید. چنانچه چنین خطایی رخ داد بلافاصله با پشتیبان سامانه تماس حاصل نمایید و به صورتی امن APIKey جدید دریافت نمایید.
- خروجی همواره یک شیء یا آرایه با قالب JSON می باشد. در صورت بروز خطا خروجی دارای یک ویژگی با نام error خواهد بود که پیغام خطای مناسب را در اختیار قرار می دهد.
یک نمونه کد PHP ساده برای فراخوانی یک سرویس
$ch = curl_init("https://register.abrish.ir/service.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $apiKey = 'کلید درهم سازی دریافت شده از پشتیبانی'; $paramsList = array(); $paramsList['serviceusername'] = 'نام کاربری ثبت نام در سامانه'; $paramsList['mod'] = 'Organization'; $paramsList['action'] = 'getAll'; //Other required parameters based on given documentations $paramsList[‘...’] = ‘...’; $params = array(); $params['params'] = json_encode($paramsList); $params['checksum'] = sha1(json_encode($paramsList).$apiKey); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $res = curl_exec($ch);
در این نمونه کد کاملا واضح است که نحوه تولید یک درخواست به چه نحوی می باشد. در بخش بعد انواع کارکردها، پارامترهای مورد نیاز و همچنین قالب خروجی آن ها شرح داده شده اند.
نام ماژول
Organization
نام تابع
getAll
این درخواست لیستی از تمام سازمان هایی که توسط RegisterName ثبت شده اند را در خروجی ارائه می نماید.
پارامتر ورودی
ندارد
خروجی ها : آرایه ای که هر عضو آن به شرح زیر است
id
شناسه سازمان تعریف شده. این شناسه بعدا در فراخوانی درخواست های دیگر مورد استفاده قرار می گیرد.
name
نام سازمان تعریف شده
userscount
تعداد کاربران تعریف شده در سازمان
rolescount
تعداد سمت های تعریف شده در سازمان (این ویژگی مربوط به سازمان الکترونیک پیوند است)
rolescount
تعداد سمت های تعریف شده در سازمان (این ویژگی مربوط به سازمان الکترونیک پیوند است)
plantype
نوع طرح خریداری شده
timedout
آیا اعتبار سازمان به پایان رسیده است (۰: خیر ۱: بلی)
duration
تاریخ انقضای طرح خریداری شده برای سازمان با قالب هجری شمسی
allowedusers
تعداد مجاز تعریف کاربر برای سازمان
ماژول Organization تابع saveName
نام ماژول
Organization
نام تابع
saveName
در صورت نیاز به تغییر نام یک سازمان می توان از این تابع استفاده نمود.
پارامترهای ورودی
id
شناسه سازمانی که باید نام آن تغییر یابد
orgname
نام جدید سازمان
خروجی ها: یک شیء که یکی از دو ویژگی زیر را دارا است.
error
پیغام خطا در صورت وجود خطا
success
پیغام موفقیت آمیز بودن عملیات
ماژول Organization تابع getAllUsers
نام ماژول
Organization
نام تابع
getAllUsers
این تابع لیست همه کاربران را در خروجی بر می گرداند. البته این لیست محدود به پارامترهای ورودی می باشد که توضیح داده شده اند. همچنین در هر بار تنها ۱۸ عدد از کاربران برگردانده می شوند و برای دریافت مابقی کاربران باید درخواست با پارامترهای مناسب مجددا فراخوانی شود.
پارامترهای ورودی
id
شناسه سازمانی که قرار است لیست کاربران آن برگردانده شوند
page
شماره صفحه ای از نتایج که باید لیست آن برگردانده شود. در هر صفحه تنها ۱۸ عدد از نتایج بازگردانده می شوند و در اولین فراخوانی باید شماره صفحه ۰ ارسال شود. شماره صفحات نیز از ۰ شروع می شود.
filter
یک رشته است و همه کاربرانی که این رشته در نام، نام خانوادگی، شماره موبایل و یا نام کاربری آن ها به کار رفته باشد در خروجی بازگردانده می شود. در صورت خالی بودن هیچ فیلتری اعمال نمی شود و همه کاربران باز گردانده می شوند.
خروجی ها
count
تعداد کل نتایجی که با شرایط ورودی ها همخوانی دارند. به عبارتی ممکن است این متغیر برابر ۲۰۰ باشد. به این معنی است که کل نتایج مورد نظر ۲۰۰ عدد هستند. اما تنها ۱۸ عدد از آن ها براساس مقدار page بازگردانده می شود. تاکید می شود در این شرایط مقدار count برابر ۲۰۰ خواهد بود و نه ۱۸.
data
یک آرایه است که هر یک از اعضاء آن دارای ویژگی های زیر می باشد
ID
شناسه کاربر
FirstName
نام
LastName
نام خانوادگی
UserName
نام کاربری
Gender
جنسیت (۱: مرد ۲: زن)
BirthDate
تاریخ تولد با قالب هجری شمسی
Cell
شماره همراه
IsEnable
وضعیت فعال بودن کاربر (۰: غیرفعال ۱: فعال)
SpecialAccess
وضعیت دارا بودن دسترسی های ویژه (۰: فاقد دسترسی ویژه ۱: دارای دسترسی ویژه)
ماژول Organization تابع postUser
نام ماژول
Organization
نام تابع
postUser
با استفاده از این سرویس امکان درج و یا ویرایش کاربران وجود خواهد داشت
پارامترهای ورودی
id
شناسه سازمانی که این کاربر در آن قرار دارد
userid
در صورتی که قصد ویرایش یک کاربر را دارید شناسه کاربر است. در صورت ثبت کاربر جدید این پارامتر باید ۰ ارسال شود
firstname
نام
lastname
نام خانوادگی
username
نام کاربری که نباید بیش از ۱۶ کاراکتر باشد
gender
جنسیت (۱: مرد ۲:زن)
specialaccess
وضعیت دارا بودن دسترسی های ویژه (۰: فاقد دسترسی ویژه ۱: دارای دسترسی ویژه)
isenable
وضعیت فعال بودن کاربر (۰: غیرفعال ۱: فعال)
birthdate
تاریخ تولد با قالب هجری شمسی
cell
شماره همراه
password
کلمه عبور
خروجی ها
در صورتی که موفقیت آمیز باشد هیچ خروجی باز نمی گرداند در غیر این صورت یک مؤلفه error بازگردانده می شود.