الرجاء عدم مشاركة معلومات بطاقتك مع أي شخص آخر، علماً أن FIB لن يطلب أبداً معلومات بطاقتك.
تم إنشاء حزمة تطوير برامج الدفع FIB للسماح لك بدمج FIB كطريقة دفع مريحة داخل تطبيقك:
سيوضح هذا القسم التدفق المحتمل لاستخدام Mobiles-SDK لإنشاء معاملة واسترداد حالة المعاملة وإلغاء المعاملة.
لاستخدام هذا SDK على Android، يجب معالجة ما يلي.
1. مستوى API21+ .2. امتلك حساب مطور، وزود SDK ببيانات اعتماد حسابك مثلClientID ,ClientSecret ,GrantType وFIBBackend .
21+
ClientID
ClientSecret
GrantType
FIBBackend
أضف هذا التبعية في تطبيقكbuild.gradle ملف:
build.gradle
مثال على التعليمات البرمجية
dependencies { implementation 'iq.fib.payments:fib_payment_sdk:1.0.0' }
بعد اتخاذ الخطوات المطلوبة للحصول على حساب مطور في FIB، سيتم تزويدك ببيانات اعتماد حساباتك (ClientId ,ClientSecret ,GrantType ,FIBBackend ).
ClientId
في جذر مشروع Android الخاص بك، حدد موقعlocal.properties (أو قم بإنشاء ملف إذا لم يكن موجودًا) وأضف بيانات الاعتماد الخاصة بك إليه.
local.properties
FIBBackend = XXXX GrantType = XXXX ClientId = XXXX ClientSecret = XXXX
في تطبيقكbuild.gradle أضف الملفit.manifestPlaceholders["env_type"] = ".stage" إلىdefaultConfig الخاص بك.
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 بطريقتين:
يمكنك استخدام FIBButton لعرض عمليات الدفع الخاصة بك. أضف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
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
من الاختياري الحصول على هذه الميزة، لذلك إذا قمت بتوفير الخاص بكredirect URI ، تحدث عملية إعادة التوجيه وإلا فإن تطبيقات FIB تتصرف كما تفعل عادةً.
شكرا لك!. سنقوم بالرد عليك على الفور
يستخدم هذا الموقع الإلكتروني ملفات تعريف الارتباط حتى نتمكن من تزويدك بأفضل تجربة مستخدم ممكنة. تُخزَّن معلومات ملفات تعريف الارتباط في متصفحك وتؤدي وظائف مثل التعرف عليك عند العودة مجدداً إلى موقعنا الإلكتروني ومساعدة فريقنا على فهم أقسام الموقع التي تعتبر ذات أهمية وفائدة بالنسبة لك.
يجب تمكين ملف تعريف الارتباط الضروري في جميع الأوقات حتى نتمكن من حفظ أفضلية إعدادات ملفات تعريف الارتباط الخاصة بك.