إضافة دعم 3DS1 و3DS2

يتوفّر كلّ من 3DS1 و3DS2 للدمج التام بين الأطراف في مواعيد مركز الإجراءات. ويمكنك تطبيق أحد هذين الإجراءين (أو كليهما) لإجراء عملية الدمج.

سيستوفي إمّا الإصدار 3DS1 أو 3DS2 متطلبات المصادقة القوية للعميل بموجب PSD2، ولكن هناك بعض الاختلافات الرئيسية:

  • 3DS1: يمكنك اختيار تشغيل 3DS1 لإجراء معاملة عندما تكون لديك إشارات بأنّ الرسوم احتيالية.
    • يتطلب تنفيذ نموذج 3DS1 إجراء تغييرات على خادم الحجز.
  • 3DS2: سيتم استخدام 3DS2 فقط للمعاملات التي تنطبق عليها توجيهات PSD2 (يكون مصرف التحصيل ومصرف العميل في المنطقة الاقتصادية الأوروبية).
    • يتطلب تطبيق 3DS2 إجراء تغييرات على خلاصة التاجر.

تنفيذ النموذج الثلاثي الأبعاد 2

يتطلب تنفيذ 3DS2 إضافة حقول إضافية إلى خلاصة التاجر في رسالة TokenizationConfig. إذا تمّ تحويل جميع الدفعات إلى الحساب نفسه، سيتمّ تكرار القيمة في كلّ إدخال للتاجر. إذا تم إرسال الدفعات إلى حسابات مختلفة، يجب أن تكون القيم في كل إدخال تاجر مخصصة للحساب الذي تحصل فيه على الأموال ضمن المعاملة.

تغييرات في خلاصة التاجر

  • merchant_of_record_name: اسم الجهة المسؤولة عن معالجة الدفعات (MOR) سيتم عرض هذا الاسم المرئي للمستخدم في اختبارات 3DS2.
  • payment_country_code: البلد الذي ستتم معالجة المعاملة فيه، بتنسيق ISO 3166-1 alpha-2.
  • رسالة CardNetworkParameters: يتم تكرار هذه الرسالة مع القيم الخاصة بالشبكات المختلفة (مطلوب فقط لبطاقات Visa وAmerican Express).
    • card_network: الشبكة (Visa أو American Express) التي تنطبق عليها هذه القيم
    • acquirer_bin: رقم تعريف المصرف الخاص بمصرف التحصيل والذي يُستخدَم لمعالجة البطاقة
    • acquirer_merchant_id: معرّف التاجر الذي عيّنه التاجر للتاجر لاستخدامه في تفويض المعاملات (للمعاملات مع Visa و American Express)

عند إضافة هذه الحقول إلى خلاصة التاجر، ستتلقّى رمز تشفير 3DS2 ضمن unparsed_payment_method_token الذي يتلقّاه خادم الحجز في كل مرة تنطبق فيها PSD2 على المعاملة. وعليك إرسال unparsed_payment_method_token وكلمة المرور المشفّرة المضمّنة إلى شريك المعالجة وفقًا للمواصفات المحدّدة له.

تنفيذ النموذج ثلاثي الأبعاد 1

التغييرات على خادم الحجز

وسنقدِّم طلب CreateBooking وإذا تبيّن لك أنّ 3DS1 ستكون مطلوبة لإجراء المعاملة، سيتم عرض السمة Booking Failure من طريقة CreateBooking وتحديد السبب PAYMENT_REQUIRES_3DS1 كسبب. في استجابة الخطأ هذه، ستحتاج أيضًا إلى تحديد الرسالة ThreeDS1Parameters ضمن رسالة PaymentFailureInformation:

  • acs_url = عنوان URL المطلوب تحميل نموذج منه لعرضه على المستخدم للمصادقة.
  • pa_req = طلب Paymentمصادقة. لنشره في نموذج ACSUrl
  • transaction_id = معرّف يستخدمه موفّر خدمة ACS. لنشره في نموذج ACSUrl
  • md_merchant_data = بيانات "مركز الإجراءات" التي يمكن مشاركتها مع موفّر خدمة ACS إذا توفّرت.

بعد ذلك، سنعيد إرسال طلب CreateBooking الأصلي الذي يتضمّن رمز pa_response ضمن رسالة PaymentInformation. سيحتوي الحقل pa_response على الحمولة التي يتم إرجاعها إلينا من موفّر خدمة ACS، ويجب أن تستخدمها للسماح بالمعاملة مع معالج البيانات.

وإليك رسم بياني يصف تدفق 3DS1:

الشكل 1: مخطط عملية 3DS1
الشكل 1: رسم بياني لعملية 3DS1