مقدمه
چند سالی هست که با توجه به محبوبیت سیستم عامل اندروید بین مردم و توسعه دهندگان نرم افزار، شاهد پیاده سازی این سیستم عامل بر روی دستگاههای مختلفی به جز موبایلها نیز هستیم. بعد از تلویزیون، ساعت و خودرو، این بار این سیستم عامل متن باز در حوزه پرداخت وارد شده و بر روی دستگاههای کارتخوان پیادهسازی شده است. شاید به تازگی و در نانواییها شاهد استفاده از این دستگاهها بوده باشید، اما در واقع چند سالی از ورود این دستگاهها به بازار ایران میگذرد و اخیرا با ارائه کاربردهای جدید در حوزه پرداخت، بیش از پیش در حال محبوب شدن هستند. جالب است بدانید قدیمیترین پز اندرویدی با نسخه 4.4 این سیستم عامل عرضه شده است. در این مقاله سعی میکنیم کمی با مسائل فنی و روشهای توسعه نرمافزار این نوع کارتخوانها آشنا شویم و همچنین تفاوتهای آن با کارتخوانهای کلاسیک را بررسی کنیم.
اجزای دستگاه کارتخوان اندرویدی
این دستگاه را می توانیم همانند یک موبایل در نظر بگیریم که تعدادی ماژول سختافزاری جهت انجام عملیات پرداخت به آن اضافه شده است. در واقع میتوان گفت این دستگاه به جز اجزای موبایل، ماژولهایی همچون پرینتر، کارتخوان(مغناطیسی، غیر تماسی و هوشمند) و HSM را نیز داراست.
حال شما برای کار با این سختافزارها نیاز دارید تا از شرکت سازنده دستگاه، SDK آن را دریافت کنید. SDK معمولا به شکل یک فایل کتابخانه jar است که بعد از افزودن آن به پروژه میتوان با ماژولهای سخت افزاری کار کرد.
نقشهای برنامهنویسها در کارتخوان اندروید
در این پروژهها دو نقش اصلی وجود دارد:
- نقش اول برنامهنویس یا برنامهنویسهایی هستند که اپلیکیشن پرداخت را طراحی و پیادهسازی می کنند.
آنها باید با کارتخوان و استانداردهای پرداخت آشنا بوده و همچنین بتوانند با پروتکل ISO8583 با سوئیچ بانکی تبادل اطلاعات کنند. برنامهنویسان پس از نوشتن اپلیکیشن پرداخت، یک SDK پرداخت هم توسعه میدهند تا شرکت ها و برنامهنویسهای ثالث بتوانند به راحتی و بدون آنکه درگیر مسائل فنی تراکنش بانکی شوند از امکان پرداخت روی کارتخوان استفاده کنند.
- نقش دوم برنامهنویس یا برنامهنویسهایی هستند که می خواهند اپلیکیشن ثالثی مانند مدیریت کارواش ، پخش کالا (برای ویزیتور) و … را توسعه دهند و نیاز دارند از تراکنشهای کارتخوان همانند خرید استفاده کنند. مثال زیر شرایط این نوع اپلیکیشنها را روشن میکند.
مثال: یک ویزیتور با اپلیکیشنی که برای او توسعه داده شده و روی کارتخوان نصب است سفارشی را ثبت میکند. برای پرداخت مبلغ فاکتور توسط خریدار، لازم است برنامهنویس در اپلیکیشن مبلغ را به همراه مجموعهای از اطلاعات دیگر به اپلیکیشن پرداخت پاس دهد و پس از آن عملیات خرید در اپلیکیشن پرداخت انجام و پس از پایان عملیات خرید، نتیجه عملیات به همراه اطلاعات تراکنش به همان اپلیکیشن ثالث برگشت داده می شود. (سناریو کاملا شبیه خرید از درگاه پرداخت بانکی تحت وب است)
اپلیکیشن پرداخت و مستندات نحوه ارتباط با آن توسط شرکت نویسنده اپلیکیشن پرداخت باید در اختیار شما قرار بگیرد تا بتوانید سناریوهای بالا را اجرا کنید. در این میان گاه با کتابخانهای جداگانه و گاه با همان کتابخانه SDK پرداخت که قبلا به شما ارائه شده است میتوانید به ماژولهای سختافزاری دستگاه همانند پرینتر و کارتخوان دسترسی داشته و به آن فرمان دهید. دسترسی به این امکانات کاملا به شرایط تولیدکننده دستگاه بستگی دارد.
تغییراتی که بر روی سیستم عامل ایجاد شده است
عمده تغییراتی که در لایه سیستم عامل دستگاه ایجاد شده را می توان در راستای امنیت دستگاه دانست که طبق قوانین PCI DSS بر روی سیستم عامل اعمال شده است. در این بخش می توان به سه مورد زیر اشاره نمود:
- حذف سرویسهای گوگل از روی دستگاه
- تنها اپلیکیشنهایی می توانند بر روی دستگاه نصب شوند که توسط ساینر شرکت سازنده دستگاه امضا شده باشند. ساینر میتواند به شکل یک سختافزار یا نرمافزار باشد.
- غیر فعال بودن ADB و Developer Options
بهصورت پیشفرض امکان فعال کردن ADB و Developer Options وجود ندارد. اما برای اینکه برنامهنویس در طول فرایند توسعه نرمافزار بر روی دستگاه دچار محدودیت Sign نباشد و عیبیابی با USB Debugging ممکن باشد، معمولا یک دستگاه کارتخوان اندروید که روی آن نسخه Development سیستم عامل وجود دارد را در اختیار برنامهنویس قرار میدهند.
مزایای کارتخوان اندروید نسبت به کارتخوانهای کلاسیک
- امکان نصب اپلیکیشنهای تایید شده اندرویدی
- صفحه لمسی
- امکان شخصیسازی با توسعه نرمافزارهای مختص به کسبوکارهای مختلف
- دارای قابلیت جابجایی
- امکان اتصال به وای-فای و شبکه موبایل
- دارا بودن سایر امکاناتی که بر روی موبایلهای اندروید موجود است
جمعبندی
اکنون در ایران کسبوکارهایی همچون نانوایی، کارواش، پخش کالا، پارکینگ و … از کارتخوان اندرویدی استفاده میکنند و به طور معمول پس از آشنایی بازار با این محصول، شاهد استقبال سایر کسبوکارها از اینگونه محصولات هستیم. یکی از دلایل مهم توجه کسبوکارها به پز اندروید را میتوان امکان سفارشیسازی آن برای کسبوکارهای مختلف دانست که موجب افزایش کارایی کارتخوان شده است. کسب و کارها می توانند از اپلیکیشنهای آماده استفاده کنند و یا با کمک برنامهنویسان اپلیکیشن مورد نظر خود را روی دستگاه توسعه دهند.
سیدمحمد میرهاشمتبار برنامهنویس اندروید شرکت فناپ تک با 3 سال سابقه در حوزه پرداخت و پایانههای بانکی با سیستم عامل اندروید
فعال در حوزه برنامهنویسی اندروید و هوش مصنوعی
کارشناس ارشد هوش مصنوعی (دانشگاه صنعتی مالکاشتر)