پیاده سازی iso 8583 در زبان go

اینم یه تجربه پراکنده دیگه!

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

تنها بخش مجهول این بود که من ایده‌ای نداشتم که چطوری پروتکل ۸۵۸۳ رو بصورت بهینه توی این زبان parse کنم که این پروژه‌ها رو پیدا کردم که بهم یکم ایده میدن. گفتم لیستش رو اینجا بنویسم شاید به درد دیگران هم بخوره

https://github.com/jthmath/VirtuaPOSP

https://github.com/paopaol/bank

https://github.com/linphy/iso8583go

https://github.com/dgv/omg8583

استاندارد iso 8583

اینم یه تجربه پراکنده دیگه!

من یه مدت توی سیستم بانکی این مرز و بوم کار میکردم و برنامه نویس  پایانه‌های فروش بودم. از اونجا بود که یه استاندارد بانکی به نام iso ۸۵۸۳ بود آشنا شدم که یه استادارد برای تراکنش‌های مبتنی بر کارت است. این استادارد سه تا نسخه ۸۵ و ۹۱ و ۰۳ داره که در سالهای ۱۹۸۵ و ۱۹۹۱ و ۲۰۰۳ استاندارد شده که هرکدوم تفاوت‌هایی دارند.

درسهای زیادی برای یادگرفتن از این پروتکل وجود داره و مهمترینش اینه که سعی کن «کم گوی و گزیده گوی» باشی و پیشنهاد میده بسته تراکنش‌های مالی بایستی کمتر ۱۰۲۴ بایت باشه تا موفقیتش به میزان زیادی تضمین بشه.

پیاده‌سازی‌های متن باز بسیاری هم از پروتکل در زبان‌های مختلف وجود داره که لیست اونها در پایین اومده:

  • پیاده سازی به زبان c معروف به سندرسون
  • پیاده سازی به زبان java معروف به jpos
  • دوتا پیاده سازی محیط .net هم داره که توی اینجا و اینجا پیدا میش

این مقدمه اولیه برای این پروتکل کافیه تا اگه عمری بود بازهم در مورد این پروتکل بنویسم.