diff --git a/GenesisAndroid/build.gradle b/GenesisAndroid/build.gradle index 6ac7a97..78eaa25 100644 --- a/GenesisAndroid/build.gradle +++ b/GenesisAndroid/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'kotlin-kapt' ext { PUBLISH_GROUP_ID = 'com.emerchantpay.gateway' - PUBLISH_VERSION = '1.3.9' + PUBLISH_VERSION = '1.3.91' PUBLISH_ARTIFACT_ID = 'genesis-android' PUBLISH_DESCRIPTION = 'Genesis Android SDK' PUBLISH_URL = 'https://github.com/GenesisGateway/android_sdk' @@ -27,7 +27,7 @@ android { minSdkVersion 19 targetSdkVersion 33 versionCode 1 - versionName "1.3.9" + versionName "1.3.91" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/constants/WPFTransactionTypes.kt b/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/constants/WPFTransactionTypes.kt index c80ac45..92e66ca 100644 --- a/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/constants/WPFTransactionTypes.kt +++ b/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/constants/WPFTransactionTypes.kt @@ -15,6 +15,12 @@ enum class WPFTransactionTypes(val value: String) { // 3D-Secure Sale SALE3D("sale3d"), + // Standard initial recurring + INIT_RECURRING_SALE("init_recurring_sale"), + + // 3D-based initial recurring + INIT_RECURRING_SALE3D("init_recurring_sale3d"), + // Card verification without any financial impact // Payment using credit or debit cards connected to a consumer's Google account GOOGLE_PAY("google_pay"), diff --git a/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/internal/request/PaymentRequest.kt b/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/internal/request/PaymentRequest.kt index ba97eeb..118139f 100644 --- a/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/internal/request/PaymentRequest.kt +++ b/GenesisAndroid/src/main/java/com/emerchantpay/gateway/genesisandroid/api/internal/request/PaymentRequest.kt @@ -447,10 +447,7 @@ open class PaymentRequest : Request, PaymentAttributes, CustomerInfoAttributes, paymentRequestBuilder?.addElement("threeds_v2_params", buildThreeDsV2Attributes().toXML()) } - if (transactionTypesList.contains("authorize") - || transactionTypesList.contains("authorize3d") - || transactionTypesList.contains("sale") - || transactionTypesList.contains("sale3d")) { + if (isRecurringEnabled(transactionTypesList)) { recurringType?.let { paymentRequestBuilder?.addElement("recurring_type", it) } @@ -548,6 +545,15 @@ open class PaymentRequest : Request, PaymentAttributes, CustomerInfoAttributes, return "wpf_payment" } + private fun isRecurringEnabled(transactionTypesList: List): Boolean { + return (transactionTypesList.contains(WPFTransactionTypes.AUTHORIZE.value) + || transactionTypesList.contains(WPFTransactionTypes.AUTHORIZE3D.value) + || transactionTypesList.contains(WPFTransactionTypes.SALE.value) + || transactionTypesList.contains(WPFTransactionTypes.SALE3D.value) + || transactionTypesList.contains(WPFTransactionTypes.INIT_RECURRING_SALE.value) + || transactionTypesList.contains(WPFTransactionTypes.INIT_RECURRING_SALE3D.value)) + } + companion object { fun getAmount(paymentRequest: PaymentRequest): BigDecimal? { return paymentRequest.amount diff --git a/README.md b/README.md index c28b50c..f8bd894 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ cd GenesisAndroid * Add the dependency in your build.gradle: ``` dependencies { - implementation 'com.emerchantpay.gateway:genesis-android:1.3.9' + implementation 'com.emerchantpay.gateway:genesis-android:1.3.91' } ```