payu-intrepos / PayUCheckoutPro-Android

PayUCheckoutPro SDK for Android
9 stars 9 forks source link

UPI/Google Pay/Paytm option is not coming for Android while adding enforcePaymentList #40

Open VipsDevelopment opened 1 year ago

VipsDevelopment commented 1 year ago

When adding enforcePaymentList, the UPI/Google Pay/Paytm options are not showing only for Android. For iOS enforcePaymentList I'm able to see UPI/Google Pay/Paytm option. Not sure if I've missed anything or added the wrong key and value for android.

Note: GPay & Paytm is already installed on Android and iOS devices. UPI/Google Pay/Paytm option is coming in the testing environment with enforcePaymentList but not in production. See the attachment images and code below.

Expected Result for Android with enforcePaymentList:

Screenshot_2023-02-14-13-57-40-71_d6ffd0039421fe58330ccdb1121af688

iOS Snipped code:

   func getEnforcePaymentModesList() -> [[String: Any]]? {
            var enforcePaymentList = [[String: Any]]()

            var nbEnforcement = [String: Any]()
            nbEnforcement[PaymentParamConstant.paymentType] = PaymentParamConstant.nb

            var ccdcEnforcement = [String: Any]()
            ccdcEnforcement[PaymentParamConstant.paymentType] = PaymentParamConstant.card
            // enforce credit card or debit card => PaymentParamConstant.cc || PaymentParamConstant.dc
            ccdcEnforcement[PaymentParamConstant.cardType] = PaymentParamConstant.dc
            enforcePaymentList.append(ccdcEnforcement)

            var upiEnforcement = [String: Any]()
            upiEnforcement[PaymentParamConstant.paymentType] = PaymentParamConstant.upi
            enforcePaymentList.append(upiEnforcement)

            var walletEnforcement = [String: Any]()
            walletEnforcement[PaymentParamConstant.paymentType] = PaymentParamConstant.wallet
            enforcePaymentList.append(walletEnforcement)

            return enforcePaymentList
        }

iOS Production Snapshot with enforcePaymentList:

IMG_504049916897-1

Android Snipped code:

        val additionalParamsMap: HashMap<String, Any?> = HashMap()
        additionalParamsMap[PayUCheckoutProConstants.CP_VAS_FOR_MOBILE_SDK] = varForSdkHash
        additionalParamsMap[PayUCheckoutProConstants.CP_PAYMENT_HASH] = hashPayment

        Log.d("Parameters", "call : >" + call.arguments)

        val payUPaymentParams = PayUPaymentParams.Builder()
                .setAmount(amount)
                .setIsProduction(true)
                .setKey(merchantKey)
                .setProductInfo(productName)
                .setPhone(phone)
                .setTransactionId(transactionID)
                .setFirstName(firstName)
                .setEmail(email)
                .setUserCredential("$merchantKey:$phone")
                .setSurl(sURL)
                .setFurl(fURL)
                .setAdditionalParams(additionalParamsMap)
                .build()
   private fun getEnforcePaymentList(): ArrayList<HashMap<String, String>> {
        val enforceList = ArrayList<HashMap<String, String>>()
        enforceList.add(HashMap<String, String>().apply {
            put(PayUCheckoutProConstants.CP_PAYMENT_TYPE, PaymentType.NB.name)
        })
        enforceList.add(HashMap<String, String>().apply {
            put(PayUCheckoutProConstants.CP_PAYMENT_TYPE, PaymentType.CARD.name)
            put(PayUCheckoutProConstants.CP_CARD_TYPE, CardType.DC.name)
        })
        enforceList.add(HashMap<String, String>().apply {
            put(PayUCheckoutProConstants.CP_PAYMENT_TYPE, PaymentType.WALLET.name)
        })
        enforceList.add(HashMap<String, String>().apply {
            put(PayUCheckoutProConstants.CP_PAYMENT_TYPE, PaymentType.UPI.name)
        })
        return enforceList
    }
    private fun getCheckoutOrderList(): ArrayList<PaymentMode> {
        val checkoutOrderList = ArrayList<PaymentMode>()
        checkoutOrderList.add(
                PaymentMode(
                        PaymentType.UPI,
                        PayUCheckoutProConstants.CP_GOOGLE_PAY
                )
        )
        checkoutOrderList.add(
                PaymentMode(
                        PaymentType.WALLET,
                        PayUCheckoutProConstants.CP_PAYTM
                )
        )
        return checkoutOrderList
    }
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'androidx.core:core-ktx:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'in.payu:payu-checkout-pro:2.0.6'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'in.payu:olamoney:1.2.2'
    implementation 'in.payu:payu-gpay:1.5.2'
    implementation 'in.payu:native-otp-assist:1.3.2'
    implementation 'com.android.volley:volley:1.2.1'
    implementation 'com.google.code.gson:gson:2.8.9'
    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2"
}

Android Production Snapshot with enforcePaymentList:

Screenshot_2023-02-14-13-36-48-35_d6ffd0039421fe58330ccdb1121af688

Android Testing Snapshot with enforcePaymentList:

Screenshot_2023-02-14-13-43-38-72_d6ffd0039421fe58330ccdb1121af688

Android Production Snapshot without enforcePaymentList:

Screenshot_2023-02-14-13-57-40-71_d6ffd0039421fe58330ccdb1121af688