إضافة ميزة التوافق مع 3DS1 و3DS2

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

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

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

تنفيذ 3DS2

يتطلّب تنفيذ 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 ورمز التشفير المضمّن فيه إلى شريك المعالجة وفقًا لصيغته.

تنفيذ 3DS1

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

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

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

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

في ما يلي مخطّط بياني يصف عملية 3DS1:

الشكل 1: مخطّط عملية 3DS1
الشكل 1: مخطّط عملية 3DS1