الرجاء عدم مشاركة معلومات بطاقتك مع أي شخص آخر، علماً أن FIB لن يطلب أبداً معلومات بطاقتك.

Android Payments SDK

تم إنشاء FIB payment SDK للسماح لك بدمج FIB كطريقة دفع مريحة داخل تطبيقك

دليل المطور - FIB SDK لنظام Android

تم إنشاء حزمة تطوير برامج الدفع FIB للسماح لك بدمج FIB كطريقة دفع مريحة داخل تطبيقك:

  1. بدء معاملة والسماح للمستخدمين بالدفع من خلال تطبيقات FIB (الشخصية والتجارية والمؤسسية)؛
  2. الحصول على حالة الدفع؛
  3. إلغاء المدفوعات.

الهاتف المحمول — مخطط حالة SDK

سيوضح هذا القسم التدفق المحتمل لاستخدام Mobiles-SDK لإنشاء معاملة واسترداد حالة المعاملة وإلغاء المعاملة.

1. بدء المعاملة

2. استرداد حالة الدفع من Mobile-SDK

3. إلغاء الدفع من Mobile-SDK

ابدأ مع FIB SDK لنظام Android

لاستخدام هذا SDK على Android، يجب معالجة ما يلي.

1. مستوى API21+ .
2. امتلك حساب مطور، وزود SDK ببيانات اعتماد حسابك مثلClientID ,ClientSecret ,GrantType وFIBBackend .

تنزيل - معالجة API

Gradle

أضف هذا التبعية في تطبيقكbuild.gradle ملف:

مثال على التعليمات البرمجية

نسخ تم النسخ
dependencies {
    implementation 'iq.fib.payments:fib_payment_sdk:1.0.0'
}

تهيئة SDK

الخطوة 1: احصل على بيانات اعتماد حسابك.

بعد اتخاذ الخطوات المطلوبة للحصول على حساب مطور في FIB، سيتم تزويدك ببيانات اعتماد حساباتك (ClientId ,ClientSecret ,GrantType ,FIBBackend ).

الخطوة 2: قم بتزويد SDK ببيانات الاعتماد الخاصة بك.

في جذر مشروع Android الخاص بك، حدد موقعlocal.properties (أو قم بإنشاء ملف إذا لم يكن موجودًا) وأضف بيانات الاعتماد الخاصة بك إليه.

مثال على التعليمات البرمجية

نسخ تم النسخ
FIBBackend = XXXX
GrantType = XXXX
ClientId = XXXX
ClientSecret = XXXX

الخطوة 3: قم بتوفير البيئة الخاصة بك إلى SDK.

في تطبيقكbuild.gradle أضف الملفit.manifestPlaceholders["env_type"] = ".stage" إلىdefaultConfig الخاص بك.

مثال على التعليمات البرمجية

نسخ تم النسخ
android {
    compileSdk 30
    defaultConfig {
        // replace ".stage" with "" for production environment
        // .stage: means that all transactions are fake and the operations will happen in a development environment 
        // "": means that the transactions are real and the operations will happen in a production environment
      it.manifestPlaceholders["env_type"] = ".stage"
    }
}

استخدام SDK

يمكن استخدام SDK بطريقتين:

  1. عن طريق إعادة استخدام مكونات واجهة المستخدم المتوفرة
  2. باستخدام واجهة مستخدم مخصصة وإعادة استخدام المنطق الأساسي

باستخدام واجهة المستخدم المتوفرة

يمكنك استخدام FIBButton لعرض عمليات الدفع الخاصة بك.
أضفFIBButton إلى فئة التصميم الخاصة بك:

مثال على التعليمات البرمجية

نسخ تم النسخ
<com.lawrencespring.payment.widget.FIBButton
        android:id="@+id/buttonBuy"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>

قم بالإشارة إلى الزر في كود النشاط/الجزء:

مثال على التعليمات البرمجية

نسخ تم النسخ
import com.lawrencespring.payment.widget.FIBButton

val payButton = findViewById<FIBButton>(R.id.buttonBuy)

عملية الدفع مع FIBButton

مثال على التعليمات البرمجية

نسخ تم النسخ
payButton.setOnClickListener {
    // starting payment with FIBButton
    payButton.startPayment(
        listOf(
            "https://personal.stage.first-iraqi-bank.co/?link=https://personal.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.personal.stage&ibi=se.core.Lawrencespring.development",
            "https://business.stage.first-iraqi-bank.co/?link=https://business.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.business.stage&ibi=se.core.Lawrencespring.business.development",
            "https://corporate.stage.first-iraqi-bank.co/?link=https://corporate.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.corporate.stage&ibi=se.core.Lawrencespring.corporate.development"
        )
    )
}
                  
// retrieving payment status
lifecycleScope.launch {
    val state: PaymentStatus? = payButton.checkPaymentState(paymentID)
}
  
// canceling payment 
lifecycleScope.launch {
    payButton.cancelPayment(paymentID)
}

باستخدام المنطق المتوفر مع مكونات واجهة مستخدم مخصصة

عملية الدفع مع PayWithFIB

مثال على التعليمات البرمجية

نسخ تم النسخ
import com.lawrencespring.payment.adapter.exposer.payWithFIB.PayWithFIB
import com.lawrencespring.payment.framework.exposer.payWithFIB.PaymentListener
import com.lawrencespring.payment.framework.exposer.payWithFIB.model.FIBApp
import com.lawrencespring.payment.framework.exposer.payWithFIB.PaymentStatus
val payWithFIB = PayWithFIB()
// moreThanOneApp is triggered only when multiple FIB apps are installed on the end device
// once the app is selected it could be started by using appStarter(FIBApp)
payWithFIB.addPaymentListener(object : PaymentListener {
    // availableApps: are the list of fib apps available on the end device
    // appStarted: is a callback function that's called with the app that needs to be open     
    override fun moreThanOneApp(availableApps: List<FIBApp>, appStarter: (FIBApp) -> Unit) {
        // creating a dialog that will show the available apps
        val dialog = AlertDialog.Builder(context)
        val arrayAdapter =
            ArrayAdapter<String>(context, android.R.layout.select_dialog_item)
        availableApps.forEach { arrayAdapter.add(it.name.lowercase()) }
        dialog.setAdapter(arrayAdapter) { _, which ->
            // passing the selected app to the callback          
            appStarter(availableApps[which])
        }
        dialog.create().show()
    }
})
// starting payment with PayWithFIB
payWithFIB.startPayment(
    listOf(
        "https://personal.stage.first-iraqi-bank.co/?link=https://personal.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.personal.stage&ibi=se.core.Lawrencespring.development",
        "https://business.stage.first-iraqi-bank.co/?link=https://business.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.business.stage&ibi=se.core.Lawrencespring.business.development",
        "https://corporate.stage.first-iraqi-bank.co/?link=https://corporate.stage.first-iraqi-bank.co/onlinePayment/?identifier%3DSIBAFZSPVZB2&apn=com.firstiraqibank.corporate.stage&ibi=se.core.Lawrencespring.corporate.development"
    )
)
// retrieving payment status
lifecycleScope.launch {
    val state: PaymentStatus? = payWithFIB.getPaymentState(paymentID)
}
// canceling payment 
lifecycleScope.launch {
    payWithFIB.cancelPayment(paymentID)
}

سيتحقق البرنامج المساعد (Library) مما إذا كان أي إصدار من تطبيق مصرف العراق الأول مثبتًا على الجهاز المحمول الخاص بالمستخدم، وسيحاول المتابعة في إتمام المعاملة. إذا تم تثبيت أكثر من تطبيق، فسيُطلب من المستخدم اختيار واحد منها. وإذا لم يكن أي من تطبيقات مصرف العراق الأول مثبتًا، فستتم إعادة توجيه المستخدم إلى متجر Google Play.

الرخصة

حقوق النشر 2021 مصرف العراق الأول، Inc.

مرخص بموجب رخصة Apache، الإصدار 2.0 (“الرخصة”)؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للرخصة. يمكنك الحصول على نسخة من الرخصة على https://www.apache.org/licenses/LICENSE-2.0 .

يتم توزيع البرمجيات بموجب الرخصة على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية، ما لم يكن ذلك مطلوباً بموجب القانون المعمول به أو متفقاً عليه كتابياً. راجع الترخيص للاطلاع على اللغة المحددة التي تحكم الأذونات والقيود بموجب الترخيص.

إعادة التوجيه

يتضمن SDK هذا أيضًا خيارًا لإعادة توجيه المستخدم من تطبيقات FIB إلى تطبيقك، يمكنك توفير التطبيقاتredirect URI وسيتم التعامل مع كل شيء نيابة عنك.

من الاختياري الحصول على هذه الميزة، لذلك إذا قمت بتوفير الخاص بكredirect URI ، تحدث عملية إعادة التوجيه وإلا فإن تطبيقات FIB تتصرف كما تفعل عادةً.

مصرف العراق الأول - FIB
نظرة عامة على الخصوصية

يستخدم هذا الموقع الإلكتروني ملفات تعريف الارتباط حتى نتمكن من تزويدك بأفضل تجربة مستخدم ممكنة. تُخزَّن معلومات ملفات تعريف الارتباط في متصفحك وتؤدي وظائف مثل التعرف عليك عند العودة مجدداً إلى موقعنا الإلكتروني ومساعدة فريقنا على فهم أقسام الموقع التي تعتبر ذات أهمية وفائدة بالنسبة لك.