به دلیل مشغله کاری و کمبود وقت، از این پست به بعد به مباحث فنی و برنامه نویسی این حوزه میپردازیم . چناچنه هر یک از شما دوستان عزیز سوالی در خصوص موارد غیر فنی لطفا ثبت بفرمایید تا پاسخ آن از متخصص آن حوزه دریافت و درج گردد.
خوب... در چرخه حیات تراکنش مشخص شد که موجودیتهای مختلفی در انجام یک تراکنش مالی نقش دارند و در نتیجه مجموعه عملیاتی که هریک به تنهایی انجام میدهند، یک تراکنش مالی هدایت و پردازش و نتیجه آن بازگردانده میشود. این موجودیت ها از طریق بستر شبکه مبنتی بر Tcp-Ip با هم در ارتباط بوده و بر اساس پروتکل ISO-8583 با یکدیگر صحبت میکنند.
در واقع پیام ISO، یک آرایهای از بایتها ([ ]byte) میباشد که از بستر شبکه Tcp-Ip بین موجودیتهای شبکه پرداخت مبادله میشود. در ادامه به بررسی اجزای تشکیل دهنده پیام ایزو و قوانین حاکم بر شبکه پرداخت الکترونیک خواهیم پرداخت.
باید دقت داشت که موارد ارائه شده مختص شبکه پرداخت الکترونیک داخل ایران بوده (شاپرک) و استفاده از کارت مغناطیسی(کارتهای بانکی معمولی) در این شبکه الزامی میباشد.
پیام ISO از یک هدر و دو bitmap تشکیل شده است که در مجموع از ۱۲۸ فیلد متفاوت پشتیبانی مینماید.
در هدر نوع تراکنش و نحوه چیدمان فیلدهای بعدی تا ۱۲۸ (bitmap) وطول پیام و در صورت نیاز TPDU قرار میگیرد.
با توجه به دادهای در bitmap قرار دارد، مشخص میگردد که کدامیک از فیلدهای ISO در پیام ارسالی وجود دارند و کدامیک وجود ندارند. دریافت کننده پیام با توجه به bitmap قبل از پردازش پیام، وجود فیلدهای الزامی را در آن بررسی میکند و در صورت عدم وجود فیلدهای الزامی توافق شده، از پردازش پیام خودداری و خطا مناسب را بازمیگرداند. که در اینجا “خطا در قالب پیام“ بازگردانده میشود.
برای پیامهای دارای ۶۴ فیلد از یک bitmap به عنوان bitmap اولیه و برای پیامهای دارای ۱۲۸ فیلد علاوه بر bitmap اولیه، از bitmap ثانویه نیز استفاده میشود تا بتوان تمام ۱۲۸ فیلد را آدرس دهی کرد.
طبق پروتکل مورد توافق طرفین یک تراکنش داده های اجباری و اختیاری در قالب یک پیام ISO درج و برای طرف مقابل ارسال میگردد.
نوع تراکنش - MTI
فیلد صفر مربوط است به نوع تراکنش که دریافت کننده آن، با توجه به مقدار درج شده در این فیلد متوجه میشود که این پیام یک تراکنش مالی (مثل خرید) است و یا یک تراکنش احراز هویت (مثل مرحله اول انتقال وجه که نام دارنده کارت مقصد را مشخص میکند) و یا تراکنش مدیریت شبکه (مثل پایان روز مالی) میباشد.
طرح بیتی - Bitmap
فیلد 1 - در این فلید داده ای با عنوان Bitmap قرار میگیرد که مشخص میکند که از 128 فیلد، چه فیلدهایی دارای مقدار می باشند. و چه فیلدهایی اصلا وجود ندارند. 128 بیتی یا 64 بیتی پیام ایزو هم از روی همین فیلد قابل تشخیص می باشد.
شماره کارت - Pan
فیلد 2 - این فیلد حاوی شماره 16 یا 19 رقمی کارت بانکی می باشد که اصطلاحا Pan نام دارد.
کد پردازش
فیلد 3 - کد پردازش یک عدد 6 رقمی می باشد که سوییچ دریافت کننده تراکنش از روی آن تشخیص می دهد که جه پردازشی باید روی تراکنش اجرا شود. پردازشهایی از قبیل خرید، موجودی، پرداخت قبض، انتقال وجه و ...
مبلغ
فیلد 4 - فیلد شماره 4 پیام ایزو حاوی مبلغ تراکنش می باشد، به طور کلی اگر تراکنشی دارای مبلغ باشد، باید مقدار آن را در فیلد شماره 4 با طول ثابت 12 رقم قرار دهد برای مثال 1000 تومن را باید 000000010000 در نظر گرفت.
ساعت و تاریخ محلی
فلید 7 - در این فیلد ساعت و تاریخ تراکنش درج می گردد.
شماره سریال تراکنش
فیلد 11 - این فیلد مقدار شمارنده تراکنش را در خود ذخیره میکند. این عدد 6 رقمی توسط ایجاد کننده تراکنش ایجاد شده و با هر تراکنش یک واحد افزایش می یابد.
**ادامه در پست بعدی...