پرسش و پاسخ iso8583: یه پوز چطور کار میکنه

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

پست‌های مرتبط با ۸۵۸۳ منجر به یه سری سوال جواب ایمیلی شده که من سعی مکنم با اجازه کسانی که سوال پرسیدن اونها رو اینجا باز نشر میکنم. البته بگم اینها همه نظارت و تجربیات مستقیم من هست نه چیز دیگه ای

سوال

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

و اینم جواب من
با سلام
خواهش میکنم
اول از همه باید بگم که پروتکل ۸۵۸۳ تنها یه پروتکل معرفی ساختار داده است. یعنی تعیین میکنه چه اطلاعاتی به چه شکلی فرستاده بشه. اما تعیین نمیکنه که دقیقا چیا فرستاده بشه. پس هر جایی که از این پروتکل استفاده میکنه یه سری اختصاصی سازیها روی این پروتکل انجام میده. مثلا یه نفر میخواد همیشه نسخه نرم افزار هم در کنار اطلاعات تراکنش فرستاده بشه. یکی دیگه ممکنه بخواد زمان انجام تراکنش هر دفعه فرستاده بشه و هزارتا انتخاب دیگه که وجود داره. حالا هر شرکت ارائه دهنده خدمات براساس نیازهاش و با توجه امکاناتی که سوئیچ بانکیش در اختیارش قرار میده یه پروتکل اختصاصی شده از روی پروتکل ۸۵۸۳ ایجاد میکنه.
دوم اینکه باز هم هر شرکتی راهبرد متفاوتی برای مشخصات پذیرنده پوز داره. مثلا یه شرکت فرضش اینه که موقع نصب تمام اطلاعات مربوط به مشخصات پذیرنده روی پوز ست میشه و در صورت تغییر این مقادیر سوئیچ این تغییرات رو به پوز اطلاع رسانی میکنه. یه جای دیگه فرض بر اینه که کلا این اطلاعات از یه کانال خاص با یه فرمت خاص منظوره که اصلا هم ربطی به استاندارد ۸۵۸۳ نداره به پوز اعلام میشه و نیاز به انجام هیچ تنظیمی از سمت پوز نیست. این تفاوت نگاه تو جاهای مختلف وجود داره.
اگه منظورت از صورت حساب همون گزارشاتی باشه که پوز میده یه سریشون اصلتا آفلاین هست. یعنی تراکنش‌ها روی یه سری فایل ذخیره شده و حالا از روی اون فایل‌ها یه سری گزارش ارسال گرفته میشه. یه سری دیگشون هم با استفاده از ۸۵۸۳ انجام میشه. اما اینجا هم ممکنه یه شرکت بخواد از چیزی غیر از ۸۵۸۳ استفاده کنه.
در مجموع در هر جایی ممکنه شما از یه استاندارد خود ساخته‌ای بجای ۸۵۸۳ استفاده کنی ولی معمولا فرض بر اینه که از این استاندارد استفاده میشه.
خوش و خرم باشید

پیاده سازی 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