diff --git a/GenesisAndroid/build.gradle b/GenesisAndroid/build.gradle index 3cf2e17..3df3723 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.92' + PUBLISH_VERSION = '1.3.93' 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.92" + versionName "1.3.93" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { 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 4d600be..3027b07 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 @@ -384,15 +384,7 @@ open class PaymentRequest : Request, PaymentAttributes, CustomerInfoAttributes, fun addReminder(channel: String, after: Int?): RemindersRequest { return reminders.addReminder(channel, after) } - - fun setRecurringType(recurringType: RecurringType) { - this.recurringType = recurringType.value - } - - fun setRecurringCategory(recurringCategory: RecurringCategory) { - this.recurringCategory = recurringCategory.value - } - + fun setGooglePayPaymentSubtype(googlePayPaymentSubtype: GooglePayPaymentSubtype?) { this.googlePayPaymentSubtype = googlePayPaymentSubtype googlePayPaymentSubtype?.let { setPaymentSubtype(it) } @@ -440,10 +432,10 @@ open class PaymentRequest : Request, PaymentAttributes, CustomerInfoAttributes, if (isRecurringEnabled(transactionTypesList)) { recurringType?.let { - paymentRequestBuilder?.addElement("recurring_type", it) + transactionTypes.customAttributes?.addAttribute("recurring_type", it) } recurringCategory?.let { - paymentRequestBuilder?.addElement("recurring_category", it) + transactionTypes.customAttributes?.addAttribute("recurring_category", it) } } diff --git a/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/internal/PaymentRequestUnitTest.kt b/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/internal/PaymentRequestUnitTest.kt index ec47c55..358ff08 100644 --- a/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/internal/PaymentRequestUnitTest.kt +++ b/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/internal/PaymentRequestUnitTest.kt @@ -244,9 +244,15 @@ class PaymentRequestUnitTest { @Test fun testRecurringParams() { - paymentRequest?.setRecurringType(RecurringType.INITIAL) - paymentRequest?.setRecurringCategory(RecurringCategory.SUBSCRIPTION) + paymentRequest?.transactionTypes?.customAttributes?.addAttribute("recurring_type", RecurringType.INITIAL.value) + paymentRequest?.transactionTypes?.customAttributes?.addAttribute("recurring_category", RecurringCategory.SUBSCRIPTION.value) + paymentRequest!!.isValidData?.let { assertTrue(it) } + assertEquals(paymentRequest?.transactionTypes?.toXML(), paymentRequest?.transactionTypes?.request?.toXML()) + paymentRequest?.transactionTypes?.toXML()?.let { it.run { + assertTrue(contains("recurring_type")) + assert(contains("recurring_category")) + } } } @Test @@ -264,15 +270,17 @@ class PaymentRequestUnitTest { } @Test - fun testInvvalidGooglePayTransactionRequest() { + fun testInvalidGooglePayTransactionRequest() { createPaymentRequest(WPFTransactionTypes.GOOGLE_PAY) paymentRequest?.transactionTypes?.transactionTypesList?.any { it == WPFTransactionTypes.GOOGLE_PAY.value } ?.let { assertTrue(it) } paymentRequest?.isValidData?.let { assertFalse(it) } - paymentRequest?.toXML()?.let { it.run { - assertFalse(contains("payment_subtype")) - } } + paymentRequest?.toXML()?.let { + it.run { + assertFalse(contains("payment_subtype")) + } + } } } \ No newline at end of file diff --git a/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/validation/GenesisValidatorUnitTest.kt b/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/validation/GenesisValidatorUnitTest.kt index 337b14c..d94c813 100644 --- a/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/validation/GenesisValidatorUnitTest.kt +++ b/GenesisAndroid/src/test/java/com/emerchantpay/gateway/genesisandroid/validation/GenesisValidatorUnitTest.kt @@ -278,8 +278,8 @@ class GenesisValidatorUnitTest { @Test fun testValidDataWithRecurring() { - request?.setRecurringType(RecurringType.INITIAL) - request?.setRecurringCategory(RecurringCategory.SUBSCRIPTION) + request?.transactionTypes?.customAttributes?.addAttribute("recurring_type", RecurringType.INITIAL.value) + request?.transactionTypes?.customAttributes?.addAttribute("recurring_category", RecurringCategory.SUBSCRIPTION.value) assertTrue(request?.let { validator!!.isValidRequest(it) }!!) } diff --git a/README.md b/README.md index cb456b5..4e28937 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.92' + implementation 'com.emerchantpay.gateway:genesis-android:1.3.93' } ``` @@ -483,8 +483,8 @@ val paymentRequest = PaymentRequest(this, uniqueId, "john@example.com", "+555555555", billingAddress, "https://example.com", transactionTypes) -paymentRequest?.setRecurringType(RecurringType.INITIAL) -paymentRequest?.setRecurringCategory(RecurringCategory.SUBSCRIPTION) +paymentRequest?.transactionTypes?.customAttributes?.addAttribute("recurring_type", RecurringType.INITIAL.value) +paymentRequest?.transactionTypes?.customAttributes?.addAttribute("recurring_category", RecurringCategory.SUBSCRIPTION.value) // ... ``` @@ -492,8 +492,10 @@ paymentRequest?.setRecurringCategory(RecurringCategory.SUBSCRIPTION) ```java // Create Transaction types TransactionTypesRequest transactionTypes = new TransactionTypesRequest(); -transactionTypes.addTransaction(WPFTransactionTypes.SALE); - + transactionTypes.addTransaction(WPFTransactionTypes.SALE) + .addParam("recurring_type", RecurringType.INITIAL.getValue()) + .addParam("recurring_category", RecurringCategory.SUBSCRIPTION.getValue()); + transactionTypes.setMode(RecurringMode.AUTOMATIC) .setInterval(RecurringInterval.DAYS) .setFirstDate(FIRST_DATE) @@ -508,8 +510,6 @@ PaymentRequest paymentRequest = new PaymentRequest(this, uniqueId, "john@example.com", "+555555555", billingAddress, "https://example.com", transactionTypes); -paymentRequest.setRecurringType(RecurringType.INITIAL); -paymentRequest.setRecurringCategory(RecurringCategory.SUBSCRIPTION); // ... ```