
بطاقات الدفع جزء من حياتنا اليومية ومع الوقت بيزيد احتياجنا لفهمها كمبرمجين لأنها من أكثر وسائل الدفع انتشارًا وأغلب التطبيقات بتدعمها لتسهيل عملية الدفع لمستخدميها, ورقة وقلم وتعالوا نعرف كل التفاصيل عن الجانب التقني منها.
ما هي بطاقة الدفع؟
بطاقة الدفع هي وسيلة تقنية بحتة تساعد حاملها إنه يدفع بيها بدلاً من حمل الفلوس بشكل فعلي سواء Debit/Credit في أكثر من استخدام:
- سحب/إيداع الأموال باستخدام ATM
- في المحل وقت الشراء مع جهاز Terminal بيقرأ تفاصيل البطاقة باستخدام الـ Chip أو الـ Magnetic strip.
- أو بإدخال بياناتها أثناء الدفع على الموقع في خطوة ال Checkout
بيهمنا كمبرمجين بيانات البطاقة لأنها بتساعدنا على التعرف على نوع البطاقة وصلاحيتها والبنك المصدر ليها وشبكة البطاقات اللي هتقدر تعملها processing
مكونات البطاقة
- رقم البطاقة (PAN: Primary Account Number)
هو رقم مكون عادة من 16 رقم( بعض شبكات البطاقات تجعله أقصر من 16 ) وبنستخدمه لتعريف البطاقة عند إجراء عمليات الشراء أو السحب أو الدفع عبر الإنترنت, الرقم دا بينقسم لعدة أجزاء
الرقم الأول: بيمثل شبكة البطاقات المٌصدرة للبطاقة و ربما نوع الصناعة ( Airline, Healthcare , Petroleum )
الأرقام من 2 ل 6 : تمثل الرقم التعريفي للبنك المصدر للبطاقة BIN (Bank Identification Number) , ويمكن أن يتم استخدام أول 6 أرقام ( رقم شبكة البطاقات + BIN ) لتعريف شبكة البطاقات والبنك ونوع الصناعة
الأرقام من 7 إلى 15: تمثل رقم حساب العميل صاحب البطاقة Account Number
الرقم 16: هو Checksum Digit ويستخدم للتحقق من صلاحية البطاقة باستخدام خوارزمية Luhn اللي هنتكلم عنها في ورقة منفصلة باذن الله
تقسيم الرقم بهذا الشكل بيساعد ال Payment Processor في تحديد نوع البطاقة وشبكة البطاقات المٌصدرة له وإذا كان ال Payment Processor بيدعم طريقة الدفع بها أو لاء
- كود الأمان الـ CVC
هو كود مكون من 3 أرقام عادة على ظهر البطاقة يٌستخدم عادة للتحقق من أن مستخدم البطاقة بيحمل البطاقة بشكل فعلي, لأن الرقم الأساسي ممٌكن يتسرق ولكن مش هيتم استخدامه بدون ال CVC و تاريخ الانتهاء.
لاحظ مُبرمجنا الفاضل إنه بموجب ال PCI-DSS فلا يجوز تخزين رمز CVV مع أي جهة بعد المعاملة.
- تاريخ الإنتهاء
يٌمثل تاريخ إنتهاء صلاحية البطاقة ويٌحدده البنك المصدر للبطاقة
- الشريحة Chip
تقوم الشريحة بحمل بيانات البطاقة وهي اللي بتخلي البطاقة ذكية وتقدر ال Terminals المختلفة تقرأها. ال Chip كمان بتقوم بدور كبير في حماية البطاقة لأنها لكل معاملة بتقوم بتوليد Cryptogram (رمز مميز) ودا بيقلل من خطر الاحتيال عن طريق نقل بيانات البطاقة.
- الشريط الممغنط Magnetic Strip
دي كانت الطريقة القديمة لجعل البطاقة ذكية فهو كذلك بيحمل بيانات البطاقة ولكنه أقل أمانًا من استخدام الشريحة لأن يمكن نقل البيانات بسهولة من علي البطاقة لبطاقة أخرى, بعض البطاقات لازال عليها في حال كان قارئ البطاقة قديم ولا يدعم قراءة الشريحة.
- شبكة البطاقات Card Network
يوجد علي البطاقة Logo شبكة البطاقات التي تستطيع معالجة هذه البطاقة, البنك يقوم بعمل Co-branding مع شبكة البطاقات, فالبنك هو المسؤول عن التحقق من البطاقة ولكن شبكة البطاقات هي التي توصل البنوك ببعضها البعض.
شبكة البطاقات بشكل عام فكرتها ابتدت من أن بنك ألف ليه أكثر من فرع وعشان يوصل بالبنك باء اللي عنده كذلك أكثر من فرع هيحتاج يحتفظ ببيانات كل بنك بكل فرع لهذا البنك عشان يعرف يتواصل معاه ويرسل/يستقبل الأموال منه وإليه , الموضوع مرهق علي النطاق المحلي ما بالك إن في لسه معاملات مع بنوك أخري خارج البلاد. فشبكات البطاقات بتقوم بموضوع التواصل دا وبتوصل البنوك ببعض.
- البنك المصدر Issuing Bank
يوجد علي البطاقة Logo البنك المصدر للبطاقة, وبه يوجد حساب العميل وهو المسؤول عن التحقق من البطاقة و رصيد العميل.
خصوصية بيانات البطاقة
بيانات البطاقة كلها تُعتبر PII (Personally Identifiable Information) بموجب ال PCI-DSS وعشان كدا لازم يتم تشفيرهم أثناء التعامل معهم سواء الإرسال أو التخزين وتسريبها بيعرض المؤسسة المسؤولة عن التسريب للمحاسبة القانونية. وزي ما قولنا قبل كدا الأهم بالنسبة لل Fintechs وعملائهم هو أمان الخدمة ولذلك بيفضل وضع استراتيجيات أمان مختلفة ومراجعتها بشكل دوري.
💡
معايير PCI DSS (اختصارًا لـ: Payment Card Industry Data Security Standard) هي مجموعة من المعايير الأمنية العالمية تهدف إلى حماية بيانات بطاقات الدفع (الائتمان والخصم) ومنع سرقتها أو تسريبها أثناء المعالجة أو النقل أو التخزين.
التحقق من البيانات
التحقق من بيانات البطاقة بيتم علي أكثر من Layer لأن ك Layer في عملية الدفع هتقوم بالتحقق ولكن أول وأسهل تحقق بيكون باستخدام ال Luhn Algorithm لتحقق سريع من صحة تنسيق رقم البطاقة قبل الإرسال.
في الختام
هنشرح في الورقة القادمة بإذن الله Luhn Algorithm استنونا و شاركونا لوعندكم أسئلة أو مواضيع حابين تعرفوا عنها أكثر في ال Fintech, سلام 👋