导航菜单

页面标题

页面副标题

Housing v14.7.8 - BaseRazorpay.java 源代码

正在查看: Housing v14.7.8 应用的 BaseRazorpay.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.razorpay;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.ViewGroup;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import androidx.camera.camera2.internal.t2;
import androidx.core.content.ContextCompat;
import androidx.datastore.preferences.protobuf.q;
import com.google.android.gms.auth.api.phone.SmsRetriever;
import com.newrelic.agent.android.instrumentation.Instrumented;
import com.newrelic.agent.android.instrumentation.JSONObjectInstrumentation;
import com.quickblox.core.result.HttpStatus;
import com.quickblox.customobjects.helper.QBRecordParameterQueryDecorator;
import com.quickblox.users.Consts;
import com.razorpay.AnalyticsProperty;
import com.razorpay.rn.Constants;
import com.razorpay.rn.RazorpayModule;
import io.sentry.protocol.f;
import io.sentry.protocol.m;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.jivesoftware.smack.sasl.packet.SaslStreamElements;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import v4.c;

@Instrumented
public abstract class BaseRazorpay implements OnAppSelectedListener, PaymentCompleteInternalCallback, RzpInternalCallback {
    public static final int INVALID_OPTIONS = 3;
    public static final int NETWORK_ERROR = 2;
    public static final int PARSING_ERROR = 4;
    public static final int PAYMENT_CANCELED = 0;
    public static final int PAYMENT_ERROR = 5;
    static final String RAZORPAY_ORDER_ID = "razorpay_order_id";
    static final String RAZORPAY_PAYMENT_ID = "razorpay_payment_id";
    static final String RAZORPAY_SIGNATURE = "razorpay_signature";
    public static final int TLS_ERROR = 6;
    public static UpiTurboUtilities UpiTurbo = UpiTurboUtilities.INSTANCE;
    private static int callbackCount;
    protected Activity activity;
    private HashSet<String> allUpiDeviceApps;
    protected String apiKey;
    private String apiUrl;
    private boolean canUseGpayFeature;
    private JSONObject cardsFlowPayload;
    private LinkedHashSet<String> configAppsPreferredOrder;
    private String credStatusUrl;
    protected RzpPlugin extActiveRzpPluginInstance;
    private HashMap<String, ApplicationDetails> filteredUpiAutopayPackageToAppDetails;
    private HashMap<String, ApplicationDetails> filteredUpiPackageToAppDetails;
    protected boolean isExtRzpPluginActive;
    private boolean isWhiteListingEnabled;
    protected boolean mShouldDisplayLogo;
    protected ViewGroup magicView;
    private String merchPassedUPIPackageName;
    private ArrayList<String> merchantOtherUpiAppsOrder;
    private ArrayList<String> merchantPreferredUpiAppsOrder;
    private boolean ongoingPayment;
    public OtpAssist otpAssist;
    private JSONObject otpGeneratePayload;
    private JSONObject payload;
    protected PaymentResultListener paymentResultListener;
    protected PaymentResultWithDataListener paymentResultWithDataListener;
    private String payment_id;
    private RazorpayWebChromeClient razorpayWebChromeClient;
    private RazorpayWebViewClient razorpayWebViewClient;
    private ArrayList<String> remainingApps;
    private String upiAppLaunchedPackageName;
    private HashSet<String> upiAutoPaySupportedApps;
    private HashSet<String> upiBlacklistedApps;
    public UpiTurbo upiTurbo;
    private HashSet<String> upiWhiteListedApps;
    private String urlData;
    protected boolean useBottomSheet;
    protected WebView webview;

    public BaseRazorpay(Activity activity, String str) {
        this.useBottomSheet = true;
        this.isExtRzpPluginActive = false;
        this.apiUrl = "https://api.razorpay.com/v1/";
        this.payload = new JSONObject();
        this.cardsFlowPayload = new JSONObject();
        this.otpGeneratePayload = new JSONObject();
        this.ongoingPayment = false;
        this.mShouldDisplayLogo = true;
        this.canUseGpayFeature = false;
        this.upiBlacklistedApps = new HashSet<>();
        this.upiAutoPaySupportedApps = new HashSet<>();
        this.upiWhiteListedApps = new HashSet<>();
        this.configAppsPreferredOrder = new LinkedHashSet<>();
        this.apiKey = str;
        initRazorpay(activity);
        GlobalUrlConfig.initiate(null);
    }

    public static int access$008() {
        int i = callbackCount;
        callbackCount = i + 1;
        return i;
    }

    private String appendPaymentAnalytics(String str) {
        StringBuilder w = a.w(t2.o(a.r(a.w(str, "<input type='hidden' name='_[checkout_id]' value='"), AnalyticsUtil.getLocalOrderId(), "'>"), "<input type='hidden' name='_[os]' value='android'>"), "<input type='hidden' name='_[package_name]' value='");
        w.append(this.activity.getPackageName());
        w.append("'>");
        return a.r(a.w(t2.o(a.r(a.w(a.r(a.w(a.r(a.w(t2.o(w.toString(), "<input type='hidden' name='_[platform]' value='mobile_sdk'>"), "<input type='hidden' name='_[cellular_network_type]' value="), BaseUtils.getCellularNetworkType(this.activity), ">"), "<input type='hidden' name='_[data_network_type]' value='"), BaseUtils.getDataNetworkType(this.activity).getNetworkTypeName(), "'>"), "<input type='hidden' name='_[locale]' value='"), BaseUtils.getLocale(), "'>"), "<input type='hidden' name='_[library]' value='custom'>"), "<input type='hidden' name='_[library_version]' value='"), Config.SDK_VERSION, "'>");
    }

    public static long calculateEmi(long j, int i, double d) {
        double d2 = d / 1200.0d;
        double pow = Math.pow(d2 + 1.0d, i);
        return Math.round(((j * d2) * pow) / (pow - 1.0d));
    }

    private void callApi(String str, String str2, final NativeOtpCallback nativeOtpCallback) {
        Owl.post(str, str2, c.d("content-type", "application/json"), new Callback() {
            @Override
            public void run(ResponseObject responseObject) {
                if (BaseRazorpay.this.isApiCallSuccessful(responseObject)) {
                    nativeOtpCallback.onResponse(responseObject.getResponseResult());
                } else {
                    nativeOtpCallback.onError(responseObject.getResponseCode(), responseObject.getResponseResult());
                }
            }
        });
    }

    public static boolean canShowUpiIntentMethod(Context context) {
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_SHOULD_SHOW_UPI_INTENT_METHOD);
        HashSet<String> filteredDeviceUpiAppsPackageSet = getFilteredDeviceUpiAppsPackageSet(context);
        return (filteredDeviceUpiAppsPackageSet == null || filteredDeviceUpiAppsPackageSet.isEmpty()) ? false : true;
    }

    private boolean doesPackageSupportAutoPay(String str) {
        if (str == null) {
            return false;
        }
        Iterator<String> it = getSchemaSupportedAppPackageNames(this.activity, "upi://mandate").iterator();
        while (it.hasNext()) {
            if (it.next().equalsIgnoreCase(str)) {
                return true;
            }
        }
        return false;
    }

    private void fetchPreferences(String str, final FetchPreferencesCallback fetchPreferencesCallback) {
        AnalyticsUtil.trackEvent(AnalyticsEvent.FETCH_PREFERENCES_CALLED);
        String preferencesFromCache = getPreferencesFromCache();
        if (preferencesFromCache != null && (str == null || preferencesFromCache.contains(str))) {
            fetchPreferencesCallback.onResponse(preferencesFromCache);
            return;
        }
        String str2 = GlobalUrlConfig.instance().getBaseUrl() + "/v1/preferences?key_id=" + this.apiKey;
        if (str != null) {
            str2 = t2.D(str2, "&subscription_id=", str);
        }
        Owl.get(str2, new Callback() {
            @Override
            public void run(ResponseObject responseObject) {
                String responseResult = responseObject.getResponseResult();
                if (responseResult == null || responseResult.isEmpty() || responseObject.getResponseCode() != 200) {
                    fetchPreferencesCallback.onError(responseResult);
                    AnalyticsUtil.trackEvent(AnalyticsEvent.FETCH_PREFERENCES_METHODS_CALL_FAIL);
                } else {
                    CacheManager.put("rzp_payment_preferences", responseResult, TimeUnit.MINUTES.toMillis(15L));
                    fetchPreferencesCallback.onResponse(responseResult);
                    AnalyticsUtil.trackEvent(AnalyticsEvent.FETCH_PREFERENCES_CALL_SUCCESS);
                }
            }
        });
    }

    private static ApplicationDetails getAppDetailsFromPackageName(Context context, String str) {
        return new ApplicationDetails(BaseUtils.getAppNameOfPackageName(str, context), BaseUtils.getBase64FromOtherAppsResource(context, str), str, Config.getInstance().getAppLogoUrl(str));
    }

    public static void getAppsWhichSupportAutoPayIntent(Context context, RzpUpiSupportedAppsCallback rzpUpiSupportedAppsCallback) {
        rzpUpiSupportedAppsCallback.onReceiveUpiSupportedApps(getSchemaSupportedApps(context, "upi://mandate"));
    }

    public static void getAppsWhichSupportUpi(final Context context, final RzpUpiSupportedAppsCallback rzpUpiSupportedAppsCallback) {
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_GET_APPS_SUPPORTING_UPI);
        final HashMap<String, String> allPluginsFromManifest = BaseUtils.getAllPluginsFromManifest(context);
        if (allPluginsFromManifest == null || allPluginsFromManifest.size() == 0) {
            rzpUpiSupportedAppsCallback.onReceiveUpiSupportedApps(getUPISupportedApps(context));
            return;
        }
        Iterator<String> it = allPluginsFromManifest.values().iterator();
        while (it.hasNext()) {
            try {
                ((RzpPlugin) RzpPlugin.class.getClassLoader().loadClass(it.next()).newInstance()).isRegistered(context, new RzpPluginRegisterCallback() {
                    @Override
                    public void onResponse(boolean z) {
                        BaseRazorpay.access$008();
                        if (BaseRazorpay.callbackCount == allPluginsFromManifest.size()) {
                            int unused = BaseRazorpay.callbackCount = 0;
                            rzpUpiSupportedAppsCallback.onReceiveUpiSupportedApps(BaseRazorpay.getUPISupportedApps(context));
                        }
                    }
                });
            } catch (Exception e) {
                AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getLocalizedMessage());
            }
        }
    }

    private static HashSet<String> getFilteredDeviceUpiAppsPackageSet(Context context) {
        HashSet<String> hashSet = new HashSet<>();
        Config.getInstance().init(context);
        boolean isUpiWhiteListingEnabled = Config.getInstance().isUpiWhiteListingEnabled();
        HashSet<String> setOfPackageNamesSupportingUpi = BaseUtils.getSetOfPackageNamesSupportingUpi(context);
        if (isUpiWhiteListingEnabled) {
            HashSet<String> upiWhiteListedApps = Config.getInstance().getUpiWhiteListedApps();
            if (upiWhiteListedApps == null || upiWhiteListedApps.isEmpty()) {
                return new HashSet<>();
            }
            Iterator<String> it = setOfPackageNamesSupportingUpi.iterator();
            while (it.hasNext()) {
                String next = it.next();
                if (upiWhiteListedApps.contains(next)) {
                    hashSet.add(next);
                }
            }
        } else {
            HashSet<String> upiBlackListedApps = Config.getInstance().getUpiBlackListedApps();
            if (upiBlackListedApps == null || upiBlackListedApps.isEmpty()) {
                return setOfPackageNamesSupportingUpi != null ? setOfPackageNamesSupportingUpi : new HashSet<>();
            }
            Iterator<String> it2 = setOfPackageNamesSupportingUpi.iterator();
            while (it2.hasNext()) {
                String next2 = it2.next();
                if (!upiBlackListedApps.contains(next2)) {
                    hashSet.add(next2);
                }
            }
        }
        return hashSet;
    }

    private PaymentData getPaymentData(JSONObject jSONObject) {
        PaymentData paymentData = new PaymentData();
        try {
            paymentData.setData(jSONObject);
            if (jSONObject.has("razorpay_payment_id")) {
                paymentData.setPaymentId(jSONObject.getString("razorpay_payment_id"));
            }
            if (jSONObject.has(RAZORPAY_ORDER_ID)) {
                paymentData.setOrderId(jSONObject.getString(RAZORPAY_ORDER_ID));
            }
            if (jSONObject.has(RAZORPAY_SIGNATURE)) {
                paymentData.setSignature(jSONObject.getString(RAZORPAY_SIGNATURE));
                return paymentData;
            }
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
        return paymentData;
    }

    public static String getPaymentMethodsFromPreferences(String str) {
        try {
            JSONObject jSONObject = new JSONObject(str).getJSONObject("methods");
            return jSONObject == null ? jSONObject.toString() : JSONObjectInstrumentation.toString(jSONObject);
        } catch (Exception e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            return null;
        }
    }

    private static String getPaymentResult(Intent intent) {
        Bundle extras;
        if (intent == null || (extras = intent.getExtras()) == null) {
            return null;
        }
        return extras.getString("RESULT");
    }

    private String getPreferencesFromCache() {
        if (CacheManager.hasExpired("rzp_payment_preferences")) {
            return null;
        }
        return CacheManager.get("rzp_payment_preferences");
    }

    private static List<String> getSchemaSupportedAppPackageNames(Context context, String str) {
        ArrayList arrayList = new ArrayList();
        List<ResolveInfo> listOfAppsWhichHandleDeepLink = BaseUtils.getListOfAppsWhichHandleDeepLink(context, str);
        if (listOfAppsWhichHandleDeepLink != null && !listOfAppsWhichHandleDeepLink.isEmpty()) {
            Iterator<ResolveInfo> it = listOfAppsWhichHandleDeepLink.iterator();
            while (it.hasNext()) {
                arrayList.add(it.next().activityInfo.packageName);
            }
        }
        return arrayList;
    }

    private static List<ApplicationDetails> getSchemaSupportedApps(Context context, String str) {
        ArrayList arrayList = new ArrayList();
        List<ResolveInfo> listOfAppsWhichHandleDeepLink = BaseUtils.getListOfAppsWhichHandleDeepLink(context, str);
        if (listOfAppsWhichHandleDeepLink != null && !listOfAppsWhichHandleDeepLink.isEmpty()) {
            Iterator<ResolveInfo> it = listOfAppsWhichHandleDeepLink.iterator();
            while (it.hasNext()) {
                try {
                    arrayList.add(getAppDetailsFromPackageName(context, it.next().activityInfo.packageName));
                } catch (Exception e) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
                }
            }
        }
        return arrayList;
    }

    public static long getSubscriptionAmountFromPreferences(String str) {
        try {
            JSONObject jSONObject = new JSONObject(str).getJSONObject("subscription");
            if (jSONObject != null) {
                return jSONObject.getLong("amount");
            }
            return 0L;
        } catch (Exception e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            return 0L;
        }
    }

    public static List<ApplicationDetails> getUPISupportedApps(Context context) {
        HashSet<String> filteredDeviceUpiAppsPackageSet = getFilteredDeviceUpiAppsPackageSet(context);
        List<ResolveInfo> listOfAppsWhichHandleDeepLink = BaseUtils.getListOfAppsWhichHandleDeepLink(context, "upi://pay");
        ArrayList arrayList = new ArrayList();
        if (listOfAppsWhichHandleDeepLink != null && listOfAppsWhichHandleDeepLink.size() > 0) {
            for (ResolveInfo resolveInfo : listOfAppsWhichHandleDeepLink) {
                if (filteredDeviceUpiAppsPackageSet.contains(resolveInfo.activityInfo.packageName)) {
                    try {
                        arrayList.add(getAppDetailsFromPackageName(context, resolveInfo.activityInfo.packageName));
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
                    }
                }
            }
        }
        return arrayList;
    }

    private String getValueFromJsonArray(String str, JSONObject jSONObject) {
        if (!jSONObject.has("razorpay_payment_id") || !jSONObject.has("next")) {
            return null;
        }
        try {
            JSONArray jSONArray = jSONObject.getJSONArray("next");
            for (int i = 0; i < jSONArray.length(); i++) {
                if (jSONArray.getJSONObject(i).getString("action").equalsIgnoreCase(str)) {
                    return jSONArray.getJSONObject(i).getString("url");
                }
            }
            return null;
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
            return null;
        }
    }

    private void handlePayload(JSONObject jSONObject) {
        this.merchPassedUPIPackageName = null;
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYLOAD_PASSED, new JSONObject(jSONObject == null ? jSONObject.toString() : JSONObjectInstrumentation.toString(jSONObject)));
        if (jSONObject.has("method") && jSONObject.getString("method").equalsIgnoreCase("upi") && jSONObject.has("_[flow]") && jSONObject.getString("_[flow]").equalsIgnoreCase("intent")) {
            initUpiIntent();
            if (jSONObject.has("upi_app_package_name")) {
                String string = jSONObject.getString("upi_app_package_name");
                this.merchPassedUPIPackageName = string;
                AnalyticsUtil.addProperty("upi_app_package_name", new AnalyticsProperty(string, AnalyticsProperty.Scope.PAYMENT));
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_APP_PASSED);
            } else if (jSONObject.has("preferred_apps_order") || jSONObject.has("other_apps_order")) {
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_INTENT_APPS_PREFERENCE_PASSED);
                JSONArray jSONArray = new JSONArray();
                JSONArray jSONArray2 = new JSONArray();
                if (jSONObject.has("preferred_apps_order")) {
                    jSONArray = jSONObject.getJSONArray("preferred_apps_order");
                    AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_INTENT_APPS_PREFERRED_ORDER_PASSED);
                }
                if (jSONObject.has("other_apps_order")) {
                    jSONArray2 = jSONObject.getJSONArray("other_apps_order");
                    AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_INTENT_APPS_OTHER_ORDER_PASSED);
                }
                setOrderOfUpiApps(jSONArray, jSONArray2);
            }
        }
        if (jSONObject.has("display_logo")) {
            this.mShouldDisplayLogo = jSONObject.getBoolean("display_logo");
        }
    }

    private void initRazorpay(Activity activity) {
        String str = this.apiKey;
        if (str != null) {
            BaseUtils.apiKey = str;
        }
        if (str == null || str.isEmpty()) {
            this.apiKey = BaseUtils.getKeyId(activity);
        }
        String str2 = this.apiKey;
        if (str2 == null || str2.isEmpty()) {
            throw new RuntimeException("Please set your Razorpay API key in AndroidManifest.xml");
        }
        AnalyticsUtil.libraryType = "CUSTOM";
        BaseConfig.getAdvertisingIdFromUtil(activity);
        SharedPreferenceUtil.handleSdkUpdate(activity, Config.SDK_VERSION);
        Config.getInstance().init(activity);
        BaseUtils.checkForLatestVersion(activity, Config.SDK_VERSION_CODE);
        BaseUtils.setup();
        CacheManager.init(activity);
        this.activity = activity;
        activity.getWindow().setSoftInputMode(16);
        if (activity instanceof PaymentResultListener) {
            this.paymentResultListener = (PaymentResultListener) activity;
        } else if (activity instanceof PaymentResultWithDataListener) {
            this.paymentResultWithDataListener = (PaymentResultWithDataListener) activity;
        }
        Config.IS_MAGIC_ENABLED = isMagicPresent();
        Config.fetchConfig(activity, this.apiKey);
        AnalyticsUtil.setup(activity, this.apiKey, Config.SDK_TYPE, Config.SDK_VERSION_CODE, Config.SDK_VERSION);
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_INIT_END);
        AnalyticsUtil.postData();
        initUpiIntent();
        setupExternalPlugins(activity, this.apiKey);
    }

    private void initRemainingApps() {
        ArrayList arrayList = new ArrayList();
        arrayList.addAll(refreshFilteredUpiApps().keySet());
        this.remainingApps = new ArrayList<>();
        Iterator<String> it = this.configAppsPreferredOrder.iterator();
        while (it.hasNext()) {
            String next = it.next();
            if (this.filteredUpiPackageToAppDetails.containsKey(next)) {
                arrayList.remove(next);
                this.remainingApps.add(next);
            }
        }
        this.remainingApps.addAll(arrayList);
    }

    private void initUpiIntent() {
        Config config = Config.getInstance();
        this.allUpiDeviceApps = BaseUtils.getSetOfPackageNamesSupportingUpi(this.activity);
        boolean isUpiWhiteListingEnabled = config.isUpiWhiteListingEnabled();
        this.isWhiteListingEnabled = isUpiWhiteListingEnabled;
        if (isUpiWhiteListingEnabled) {
            HashSet<String> upiWhiteListedApps = config.getUpiWhiteListedApps();
            this.upiWhiteListedApps = upiWhiteListedApps;
            if (upiWhiteListedApps == null) {
                this.upiWhiteListedApps = new HashSet<>();
            }
        } else {
            HashSet<String> upiBlackListedApps = config.getUpiBlackListedApps();
            this.upiBlacklistedApps = upiBlackListedApps;
            if (upiBlackListedApps == null) {
                this.upiBlacklistedApps = new HashSet<>();
            }
        }
        HashSet<String> upiAutoPaySupportedApps = config.getUpiAutoPaySupportedApps();
        this.upiAutoPaySupportedApps = upiAutoPaySupportedApps;
        if (upiAutoPaySupportedApps == null || upiAutoPaySupportedApps.isEmpty()) {
            this.upiAutoPaySupportedApps = new HashSet<>();
        }
        LinkedHashSet<String> upiAppsPreferredOrder = config.getUpiAppsPreferredOrder();
        this.configAppsPreferredOrder = upiAppsPreferredOrder;
        if (upiAppsPreferredOrder == null) {
            this.configAppsPreferredOrder = new LinkedHashSet<>();
        }
        setFilteredUpiAppsPackageToAppDetails();
        initRemainingApps();
    }

    public boolean isApiCallSuccessful(ResponseObject responseObject) {
        try {
            JSONObject jSONObject = new JSONObject(responseObject.getResponseResult());
            if (responseObject.getResponseCode() >= 400) {
                return false;
            }
            return !jSONObject.has("error");
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
            return false;
        }
    }

    public static boolean isCredAppInstalled(Context context) {
        for (ApplicationDetails applicationDetails : getSchemaSupportedApps(context, "credpay://checkout")) {
            if (applicationDetails.getAppName().equalsIgnoreCase("cred") || applicationDetails.getAppName().equalsIgnoreCase("cred qa")) {
                return true;
            }
        }
        return false;
    }

    private boolean isPluginSupportedApp(HashMap<String, String> hashMap, String str) {
        if (!str.equalsIgnoreCase("com.google.android.apps.nbu.paisa.user")) {
            return false;
        }
        if (hashMap.containsKey("com.razorpay.plugin.googlepay_all") && this.canUseGpayFeature) {
            return true;
        }
        return hashMap.containsKey("com.razorpay.plugin.googlepay") && hashMap.containsKey("com.razorpay.plugin.googlepay_all");
    }

    private final void markPaymentCancelled() {
        if (this.payment_id == null) {
            return;
        }
        try {
            String constructBasicAuth = BaseUtils.constructBasicAuth(this.apiKey);
            HashMap hashMap = new HashMap();
            hashMap.put(jo.a.KEY_REQUEST_HEADER, "Basic " + constructBasicAuth);
            Owl.get("https://api.razorpay.com/v1/payments/" + this.payment_id + "/cancel?platform=android_sdk", hashMap, new Callback() {
                @Override
                public void run(ResponseObject responseObject) {
                    responseObject.getResponseResult();
                }
            });
            this.payment_id = null;
        } catch (Exception e) {
            e.getMessage();
            AnalyticsUtil.reportError("BaseRazorpay", "S2", e.getMessage());
        }
    }

    private void navigateToApp(String str, String str2) {
        BaseUtils.startActivityForResult(str2, str, this.activity);
        HashMap hashMap = new HashMap();
        if (str2 == null) {
            str2 = "null";
        }
        hashMap.put("url", str2);
        hashMap.put("custom_chooser", Boolean.TRUE);
        hashMap.put("package_name", str);
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_APP_LAUNCHED, AnalyticsUtil.getJSONResponse(hashMap));
    }

    private void openGpayAppForFeature(String str) {
        try {
            JSONObject jSONObject = new JSONObject(str);
            try {
                RzpPlugin rzpPlugin = (RzpPlugin) RzpPlugin.class.getClassLoader().loadClass("com.razorpay.RzpGpayMerged").newInstance();
                RzpPluginCompatibilityResponse isCompatible = rzpPlugin.isCompatible(Config.SDK_TYPE, Config.SDK_VERSION_CODE, Config.SDK_VERSION);
                if (!isCompatible.isCompatible()) {
                    onError(-1, isCompatible.getErrorMessage());
                } else if (rzpPlugin.doesHandlePayload(this.apiKey, jSONObject, this.activity)) {
                    this.isExtRzpPluginActive = true;
                    this.extActiveRzpPluginInstance = rzpPlugin;
                    rzpPlugin.processPayment(this.apiKey, jSONObject, this.activity, this);
                }
            } catch (ClassNotFoundException e) {
                e = e;
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            } catch (IllegalAccessException e2) {
                e = e2;
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            } catch (InstantiationException e3) {
                e = e3;
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            } catch (NullPointerException e4) {
                e = e4;
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            }
        } catch (JSONException e5) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e5.getMessage());
        }
    }

    public void openNativeApplication(String str) {
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.setData(Uri.parse(str));
        this.activity.startActivityForResult(intent, 20);
    }

    private void payWithCred() {
        HashMap d = c.d("content-type", "application/json");
        this.webview.setVisibility(8);
        try {
            this.payload.put(Constants.KEY_ID, this.apiKey);
            JSONObject jSONObject = new JSONObject();
            jSONObject.put("platform", io.sentry.protocol.a.TYPE);
            jSONObject.put(m.TYPE, "android");
            jSONObject.put(f.TYPE, "mobile");
            JSONObject jSONObject2 = new JSONObject();
            jSONObject2.put("agent", jSONObject);
            this.payload.put("_", jSONObject2);
            String r = a.r(new StringBuilder(), this.apiUrl, "payments/create/ajax");
            JSONObject jSONObject3 = this.payload;
            Owl.post(r, jSONObject3 == null ? jSONObject3.toString() : JSONObjectInstrumentation.toString(jSONObject3), d, new Callback() {
                @Override
                public void run(ResponseObject responseObject) {
                    try {
                        JSONObject jSONObject4 = new JSONObject(responseObject.getResponseResult());
                        JSONObject jSONObject5 = new JSONObject(responseObject.getResponseResult());
                        if (responseObject.getResponseCode() >= 400) {
                            BaseRazorpay.this.onError(5, "{\"error\":{\"code\": \"BAD_REQUEST_ERROR\", \"description\": \"An error occured while fetching payment details\"}}");
                            return;
                        }
                        if (jSONObject5.has("error")) {
                            BaseRazorpay.this.onError(5, "{\"error\":{\"code\":3, \"description\": " + responseObject.toString() + "}}");
                            return;
                        }
                        if (jSONObject4.has("request")) {
                            BaseRazorpay.this.credStatusUrl = jSONObject4.getJSONObject("request").getString("url");
                        }
                        if (jSONObject4.has("data")) {
                            SharedPreferenceUtil.setValue(BaseRazorpay.this.activity, "razorpay_payment_id", jSONObject4.getString(RazorpayModule.MAP_KEY_PAYMENT_ID));
                            BaseRazorpay.this.openNativeApplication(jSONObject4.getJSONObject("data").getString("intent_url"));
                        }
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
                    }
                }
            });
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
    }

    private void payWithGpayFeature() {
        HashMap d = c.d("content-type", "application/json");
        this.webview.setVisibility(8);
        try {
            this.payload.put(Constants.KEY_ID, this.apiKey);
            String r = a.r(new StringBuilder(), this.apiUrl, "payments/create/ajax");
            JSONObject jSONObject = this.payload;
            Owl.post(r, jSONObject == null ? jSONObject.toString() : JSONObjectInstrumentation.toString(jSONObject), d, new Callback() {
                @Override
                public void run(ResponseObject responseObject) {
                    try {
                        JSONObject jSONObject2 = new JSONObject(responseObject.getResponseResult());
                        JSONObject jSONObject3 = new JSONObject(responseObject.getResponseResult());
                        if (responseObject.getResponseCode() >= 400) {
                            BaseRazorpay.this.onError(5, "{\"error\":{\"code\": \"BAD_REQUEST_ERROR\", \"description\": \"An error occurred while fetching payment details\"}}");
                            return;
                        }
                        if (jSONObject3.has("error")) {
                            BaseRazorpay.this.onError(5, "{\"error\":{\"code\":3, \"description\": " + responseObject.toString() + "}}");
                            return;
                        }
                        if (!jSONObject2.has("type") || !jSONObject2.getString("type").equalsIgnoreCase("application")) {
                            BaseRazorpay.this.onError(5, "{\"error\":{\"code\": \"BAD_REQUEST_ERROR\", \"description\": \"An error occurred while fetching payment details\"}}");
                        } else {
                            SharedPreferenceUtil.setValue(BaseRazorpay.this.activity, "razorpay_payment_id", jSONObject2.getString(RazorpayModule.MAP_KEY_PAYMENT_ID));
                            BaseRazorpay.this.callNativeIntent(JSONObjectInstrumentation.toString(jSONObject2));
                        }
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
                    }
                }
            });
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
    }

    private void postSms(Intent intent) {
        String stringExtra = intent.getStringExtra("com.google.android.gms.auth.api.phone.EXTRA_SMS_MESSAGE");
        try {
            JSONObject jSONObject = new JSONObject();
            jSONObject.put("sender", "razorpay");
            jSONObject.put("message", stringExtra);
            String jSONObjectInstrumentation = JSONObjectInstrumentation.toString(jSONObject);
            this.webview.loadUrl("javascript:OTPElf.elfBridge.setSms(" + jSONObjectInstrumentation + ")");
            AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_OTP_POPULATION_JS);
        } catch (Exception e) {
            AnalyticsUtil.reportError("BaseRazorpay", "error:exception", e.getLocalizedMessage());
        }
    }

    private HashMap<String, ApplicationDetails> refreshFilteredUpiApps() {
        HashMap<String, ApplicationDetails> hashMap = new HashMap<>();
        for (ApplicationDetails applicationDetails : getUPISupportedApps(this.activity)) {
            if (this.upiWhiteListedApps.contains(applicationDetails.getPackageName())) {
                hashMap.put(applicationDetails.getPackageName(), applicationDetails);
            }
        }
        return hashMap;
    }

    private void setFilteredUpiAppsPackageToAppDetails() {
        if (this.filteredUpiPackageToAppDetails == null || this.filteredUpiAutopayPackageToAppDetails == null) {
            this.filteredUpiPackageToAppDetails = new HashMap<>();
            this.filteredUpiAutopayPackageToAppDetails = new HashMap<>();
            Iterator<String> it = this.upiAutoPaySupportedApps.iterator();
            while (it.hasNext()) {
                String next = it.next();
                if (this.allUpiDeviceApps.contains(next) && doesPackageSupportAutoPay(next)) {
                    try {
                        this.filteredUpiAutopayPackageToAppDetails.put(next, getAppDetailsFromPackageName(this.activity, next));
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                    }
                }
            }
            if (this.isWhiteListingEnabled) {
                Iterator<String> it2 = this.upiWhiteListedApps.iterator();
                while (it2.hasNext()) {
                    String next2 = it2.next();
                    if (this.allUpiDeviceApps.contains(next2)) {
                        try {
                            this.filteredUpiPackageToAppDetails.put(next2, getAppDetailsFromPackageName(this.activity, next2));
                        } catch (Exception e2) {
                            AnalyticsUtil.reportError("BaseRazorpay", "S1", e2.getMessage());
                        }
                    }
                }
                return;
            }
            Iterator<String> it3 = this.allUpiDeviceApps.iterator();
            while (it3.hasNext()) {
                String next3 = it3.next();
                if (!this.upiBlacklistedApps.contains(next3)) {
                    try {
                        this.filteredUpiPackageToAppDetails.put(next3, getAppDetailsFromPackageName(this.activity, next3));
                    } catch (Exception e3) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e3.getMessage());
                    }
                }
            }
        }
    }

    private void setOrderOfUpiApps(JSONArray jSONArray, JSONArray jSONArray2) {
        ArrayList arrayList = new ArrayList();
        ArrayList arrayList2 = new ArrayList();
        if (jSONArray != null) {
            int length = jSONArray.length();
            for (int i = 0; i < length; i++) {
                try {
                    arrayList.add(jSONArray.getString(i));
                } catch (Exception e) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                }
            }
        }
        if (jSONArray2 != null) {
            int length2 = jSONArray2.length();
            for (int i2 = 0; i2 < length2; i2++) {
                try {
                    arrayList2.add(jSONArray2.getString(i2));
                } catch (Exception e2) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e2.getMessage());
                }
            }
        }
        initRemainingApps();
        this.merchantPreferredUpiAppsOrder = new ArrayList<>();
        this.merchantOtherUpiAppsOrder = new ArrayList<>();
        Iterator it = arrayList.iterator();
        while (it.hasNext()) {
            String str = (String) it.next();
            if (this.filteredUpiPackageToAppDetails.containsKey(str)) {
                this.merchantPreferredUpiAppsOrder.add(str);
                this.remainingApps.remove(str);
            }
        }
        Iterator it2 = arrayList2.iterator();
        while (it2.hasNext()) {
            String str2 = (String) it2.next();
            if (this.filteredUpiPackageToAppDetails.containsKey(str2)) {
                this.merchantOtherUpiAppsOrder.add(str2);
                this.remainingApps.remove(str2);
            }
        }
    }

    private void setupExternalPlugins(Activity activity, String str) {
        this.upiTurbo = new UpiTurbo(activity);
        OtpAssist otpAssist = new OtpAssist();
        this.otpAssist = otpAssist;
        otpAssist.initRazorpayOtpAssist(activity, str);
    }

    private void showCustomAppChooser(String str) {
        Bundle d = coil.disk.c.d("url_data", str);
        d.putStringArrayList("merchant_preferred_upi_apps_order", this.merchantPreferredUpiAppsOrder);
        d.putStringArrayList("merchant_other_upi_apps_order", this.merchantOtherUpiAppsOrder);
        d.putStringArrayList("list_remaining_apps", this.remainingApps);
        if (str.contains("upi://pay")) {
            d.putSerializable("upi_package_to_app_details", refreshFilteredUpiApps());
        } else if (str.contains("upi://mandate")) {
            d.putSerializable("upi_package_to_app_details", this.filteredUpiAutopayPackageToAppDetails);
        }
        AppSelectorFragment appSelectorFragment = new AppSelectorFragment();
        appSelectorFragment.setAppSelectListener(this);
        appSelectorFragment.setArguments(d);
        this.activity.getFragmentManager().beginTransaction().add(android.R.id.content, appSelectorFragment, "AppSelectorFragment").addToBackStack("AppSelectorFragment").commitAllowingStateLoss();
    }

    public void startPollingForStatus() {
        Owl.get(this.credStatusUrl, new Callback() {
            @Override
            public void run(ResponseObject responseObject) {
                JSONException jSONException;
                JSONObject jSONObject;
                if (responseObject.getResponseCode() == 404) {
                    BaseRazorpay.this.onError(HttpStatus.SC_REQUEST_TIMEOUT, "{\"error\":{\"code\":408, \"description\": Payment Unsuccessful}}");
                    return;
                }
                try {
                    jSONObject = new JSONObject(responseObject.getResponseResult());
                    if (jSONObject.has("razorpay_payment_id")) {
                        try {
                            if (jSONObject.has(BaseRazorpay.RAZORPAY_ORDER_ID) && jSONObject.has(BaseRazorpay.RAZORPAY_SIGNATURE)) {
                                BaseRazorpay.this.oncomplete(jSONObject);
                                return;
                            }
                        } catch (JSONException e) {
                            jSONException = e;
                            AnalyticsUtil.reportError("BaseRazorpay", "S0", jSONException.getLocalizedMessage());
                        }
                    }
                } catch (JSONException e2) {
                    e = e2;
                }
                try {
                    if (jSONObject.has("status") && jSONObject.getString("status").equalsIgnoreCase("created")) {
                        new CountDownTimer(3000L, 1000L) {
                            @Override
                            public void onFinish() {
                                BaseRazorpay.this.startPollingForStatus();
                            }

                            @Override
                            public void onTick(long j) {
                            }
                        }.start();
                    } else if (jSONObject.has("error")) {
                        BaseRazorpay.this.oncomplete(jSONObject);
                    }
                } catch (JSONException e3) {
                    e = e3;
                    jSONException = e;
                    AnalyticsUtil.reportError("BaseRazorpay", "S0", jSONException.getLocalizedMessage());
                }
            }
        });
    }

    @JavascriptInterface
    public final void callNativeIntent(String str) {
        this.urlData = str;
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_NATIVE_INTENT_CALLED);
        try {
            if (str.contains("type") && str.contains("application") && str.contains("google_pay")) {
                openGpayAppForFeature(str);
                return;
            }
            if (this.payload.has("upi_app_package_name") && this.payload.getString("upi_app_package_name").equals("com.google.android.apps.nbu.paisa.user")) {
                openUpiApp("com.google.android.apps.nbu.paisa.user", this.urlData);
                return;
            }
            String str2 = this.merchPassedUPIPackageName;
            if (str2 == null || !this.allUpiDeviceApps.contains(str2)) {
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_CUSTOM_APP_CHOOSER_SHOWN);
                showCustomAppChooser(str);
                return;
            }
            BaseUtils.startActivityForResult(str, this.merchPassedUPIPackageName, this.activity);
            HashMap hashMap = new HashMap();
            hashMap.put("url", str);
            hashMap.put("custom_chooser", Boolean.FALSE);
            hashMap.put("package_name", this.merchPassedUPIPackageName);
            AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_UPI_MERCHANT_PASSED_APP_LAUNCHED, AnalyticsUtil.getJSONResponse(hashMap));
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
    }

    public void changeApiKey(String str) {
        CacheManager.expireKey("rzp_payment_preferences");
        this.apiKey = str;
        initRazorpay(this.activity);
    }

    public void checkAndRestorePreviousSessionIfRetry(JSONObject jSONObject) {
        try {
            String string = jSONObject.getString("amount");
            if (string == null) {
                return;
            }
            long currentTimeMillis = System.currentTimeMillis();
            if (RazorpayUtils.wasLastPaymentSuccessful(this.activity)) {
                RazorpayUtils.setLastPaymentSuccessful(this.activity, false);
            } else {
                String lastPaymentAmount = RazorpayUtils.getLastPaymentAmount(this.activity);
                long lastPaymentTimestamp = RazorpayUtils.getLastPaymentTimestamp(this.activity);
                if (lastPaymentAmount != null && lastPaymentTimestamp != 0 && string.equalsIgnoreCase(lastPaymentAmount) && currentTimeMillis - lastPaymentTimestamp < 600000) {
                    AnalyticsUtil.setLocalOrderId(RazorpayUtils.getLastPaymentLocalOrderId(this.activity));
                }
            }
            RazorpayUtils.setLastPaymentAmount(this.activity, string);
            RazorpayUtils.setLastPaymentTimestamp(this.activity, currentTimeMillis);
            RazorpayUtils.setLastPaymentLocalOrderId(this.activity, AnalyticsUtil.getLocalOrderId());
        } catch (Exception e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
    }

    public void finish() {
        AnalyticsUtil.postData();
        AnalyticsUtil.refreshOrderSession();
        this.payment_id = null;
        this.ongoingPayment = false;
        this.webview.loadUrl("about:blank");
        RazorpayExceptionHandler.unregister();
        OtpAssist otpAssist = this.otpAssist;
        if (otpAssist != null) {
            otpAssist.reset();
        }
    }

    public String getBankLogoUrl(String str) {
        return RazorpayUtils.getBankLogoUrl(str);
    }

    public String getCardNetwork(String str) {
        return RazorpayUtils.getCardNetwork(str);
    }

    public int getCardNetworkLength(String str) {
        return RazorpayUtils.getCardNetworkLength(str);
    }

    public void getCardOtpData(final CardsFlowCallback cardsFlowCallback) {
        if (this.cardsFlowPayload.has("razorpay_payment_id")) {
            callApi(getValueFromJsonArray("otp_generate", this.cardsFlowPayload), null, new NativeOtpCallback() {
                @Override
                public void onError(int i, String str) {
                    BaseRazorpay.this.onError(i, str);
                }

                @Override
                public void onResponse(String str) {
                    try {
                        JSONObject jSONObject = new JSONObject(str);
                        JSONArray jSONArray = jSONObject.getJSONArray("next");
                        for (int i = 0; i < jSONArray.length(); i++) {
                            if (jSONArray.getJSONObject(i).getString("action").equalsIgnoreCase("otp_submit")) {
                                BaseRazorpay.this.otpGeneratePayload = jSONObject;
                                cardsFlowCallback.otpGenerateResponse(true);
                                return;
                            }
                        }
                        cardsFlowCallback.otpGenerateResponse(false);
                    } catch (JSONException e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                        cardsFlowCallback.otpGenerateResponse(false);
                    }
                }
            });
        }
    }

    public void getCardsFlow(JSONObject jSONObject, final CardsFlowCallback cardsFlowCallback) {
        callApi("https://api.razorpay.com/v1/payments/create/checkout/json?key_id=" + this.apiKey, jSONObject == null ? jSONObject.toString() : JSONObjectInstrumentation.toString(jSONObject), new NativeOtpCallback() {
            @Override
            public void onError(int i, String str) {
                BaseRazorpay.this.onError(5, BaseUtils.makeErrorPayload("BAD_REQUEST_ERROR", "An error occurred while fetch Payment Details from API"));
            }

            @Override
            public void onResponse(String str) {
                try {
                    JSONObject jSONObject2 = new JSONObject(str);
                    JSONArray jSONArray = jSONObject2.getJSONArray("next");
                    for (int i = 0; i < jSONArray.length(); i++) {
                        if (jSONArray.getJSONObject(i).getString("action").equalsIgnoreCase("otp_generate")) {
                            BaseRazorpay.this.cardsFlowPayload = jSONObject2;
                            cardsFlowCallback.isNativeOtpEnabled(true);
                            return;
                        }
                    }
                    cardsFlowCallback.isNativeOtpEnabled(false);
                } catch (JSONException e) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                    onError(4, BaseUtils.makeErrorPayload("JSON_PARSING_ERROR", "An error occurred while parsing the JSON payload"));
                }
            }
        });
    }

    public void getCheckoutPreferences() {
        fetchPreferences(null, new FetchPreferencesCallback() {
            @Override
            public void onError(String str) {
            }

            @Override
            public void onResponse(String str) {
                try {
                    JSONObject jSONObject = new JSONObject(str);
                    Boolean bool = Boolean.FALSE;
                    if (jSONObject.has("fee_bearer")) {
                        bool = Boolean.valueOf(jSONObject.getBoolean("fee_bearer"));
                    }
                    UpiTurbo upiTurbo = BaseRazorpay.this.upiTurbo;
                    if (upiTurbo != null) {
                        upiTurbo.setFeeBearer(bool.booleanValue());
                    }
                } catch (Exception unused) {
                }
            }
        });
    }

    public void getPaymentMethods(PaymentMethodsCallback paymentMethodsCallback) {
        getPaymentMethods(null, paymentMethodsCallback);
    }

    public void getSubscriptionAmount(String str, final SubscriptionAmountCallback subscriptionAmountCallback) {
        fetchPreferences(str, new FetchPreferencesCallback() {
            @Override
            public void onError(String str2) {
                subscriptionAmountCallback.onError(str2);
            }

            @Override
            public void onResponse(String str2) {
                subscriptionAmountCallback.onSubscriptionAmountReceived(BaseRazorpay.getSubscriptionAmountFromPreferences(str2));
            }
        });
    }

    public String getWalletLogoUrl(String str) {
        return RazorpayUtils.getWalletLogoUrl(str);
    }

    public String getWalletSqLogoUrl(String str) {
        return RazorpayUtils.getWalletSqLogoUrl(str);
    }

    public boolean isMagicPresent() {
        return false;
    }

    public void isUserRegisteredOnGpay(final Activity activity, String str, final GpayRegisteredListener gpayRegisteredListener) {
        HashMap d = c.d("Content-Type", "application/x-www-form-urlencoded");
        StringBuilder sb = new StringBuilder();
        a.D(sb, this.apiUrl, "preferences?key_id=", str, "&currency%5B0%5D=INR&amount=100&_%5Bcheckout_id%5D=");
        sb.append(AnalyticsUtil.getLocalOrderId());
        sb.append("&_%5Bos%5D=android&_%5Bpackage_name%5D=");
        sb.append(activity.getPackageName());
        sb.append("&_%5Bplatform%5D=mobile_sdk&_%5Blocale%5D=");
        sb.append(BaseUtils.getLocale());
        sb.append("&_%5Blibrary%5D=custom&_%5Blibrary_version%5D=");
        sb.append(Config.SDK_VERSION);
        Owl.get(sb.toString(), d, new Callback() {
            @Override
            public void run(ResponseObject responseObject) {
                try {
                    if (!new JSONObject(responseObject.getResponseResult()).getJSONObject("methods").getBoolean("gpay")) {
                        gpayRegisteredListener.isUserRegistered(false);
                        return;
                    }
                    try {
                        RzpPlugin rzpPlugin = (RzpPlugin) RzpPlugin.class.getClassLoader().loadClass("com.razorpay.RzpGpayMerged").newInstance();
                        try {
                            if (Class.forName("com.google.android.apps.nbu.paisa.inapp.client.api.PaymentsClient").newInstance() != null) {
                                rzpPlugin.isRegistered(activity, new RzpPluginRegisterCallback() {
                                    @Override
                                    public void onResponse(boolean z) {
                                        gpayRegisteredListener.isUserRegistered(z);
                                    }
                                });
                                BaseRazorpay.this.canUseGpayFeature = true;
                            }
                        } catch (ClassNotFoundException unused) {
                            gpayRegisteredListener.isUserRegistered(false);
                            AnalyticsUtil.reportError("BaseRazorpay", "S1", "GooglePay SDK is not included");
                        } catch (IllegalAccessException | InstantiationException unused2) {
                            gpayRegisteredListener.isUserRegistered(false);
                        }
                        RzpPluginCompatibilityResponse isCompatible = rzpPlugin.isCompatible(Config.SDK_TYPE, Config.SDK_VERSION_CODE, Config.SDK_VERSION);
                        if (isCompatible.isCompatible()) {
                            return;
                        }
                        BaseRazorpay.this.onError(-1, isCompatible.getErrorMessage());
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                        gpayRegisteredListener.isUserRegistered(false);
                    }
                } catch (JSONException e2) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e2.getMessage());
                    gpayRegisteredListener.isUserRegistered(false);
                }
            }
        });
    }

    public boolean isValidCardNumber(String str) {
        return RazorpayUtils.isValidCardNumber(str);
    }

    public void isValidVpa(String str, final ValidateVpaCallback validateVpaCallback) {
        if (str.isEmpty() || BaseUtils.getDataNetworkType(this.activity) == NetworkType.UNKNOWN) {
            validateVpaCallback.onFailure();
            return;
        }
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_VALIDATE_VPA_CALLED);
        String r = a.r(new StringBuilder(), this.apiUrl, "payments/validate/account");
        HashMap d = c.d("Content-Type", "application/x-www-form-urlencoded");
        JSONObject jSONObject = new JSONObject();
        try {
            jSONObject.put("entity", "vpa");
            jSONObject.put(io.heap.core.data.model.f.VALUE, str);
            jSONObject.put(Constants.KEY_ID, this.apiKey);
            Owl.post(r, BaseUtils.makeUrlEncodedPayload(jSONObject), d, new Callback() {
                @Override
                public void run(ResponseObject responseObject) {
                    try {
                        validateVpaCallback.onResponse(new JSONObject(responseObject.getResponseResult()));
                    } catch (NullPointerException | JSONException e) {
                        validateVpaCallback.onFailure();
                        AnalyticsUtil.reportError("BaseRazorpay", "S2", e.getMessage());
                    }
                }
            });
        } catch (NullPointerException | JSONException e) {
            validateVpaCallback.onFailure();
            AnalyticsUtil.reportError("BaseRazorpay", "S2", e.getMessage());
        }
    }

    public void onActivityResult(int r8, int r9, android.content.Intent r10) {
        throw new UnsupportedOperationException("Method not decompiled: com.razorpay.BaseRazorpay.onActivityResult(int, int, android.content.Intent):void");
    }

    public void onBackPressed() {
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_BACK_PRESSED_HARD);
        if (this.ongoingPayment) {
            trackBackPress();
            markPaymentCancelled();
        }
        oncomplete("{\"error\":{\"code\":\"BAD_REQUEST_ERROR\",\"description\":\"Payment processing cancelled by user\"}}");
    }

    public void onError(int i, String str) {
        PaymentResultListener paymentResultListener = this.paymentResultListener;
        if (paymentResultListener != null) {
            paymentResultListener.onPaymentError(i, str);
            return;
        }
        PaymentResultWithDataListener paymentResultWithDataListener = this.paymentResultWithDataListener;
        if (paymentResultWithDataListener != null) {
            paymentResultWithDataListener.onPaymentError(i, str, new PaymentData());
        }
    }

    public void onPageFinished(WebView webView, String str) {
        this.otpAssist.onPageFinished();
    }

    public void onPageStarted(WebView webView, String str) {
    }

    @Override
    public void onPaymentError(int i, String str) {
        HashMap d = c.d("response", str);
        d.put("code", Integer.valueOf(i));
        AnalyticsUtil.trackEvent(AnalyticsEvent.CHECKOUT_PLUGIN_INTERNAL_CALLBACK_ERROR, AnalyticsUtil.getJSONResponse(d));
        if (str.contains(Consts.PROVIDER) && str.contains("GOOGLE_PAY")) {
            try {
                RazorpayUtils.handleGpayFeaturePaymentResponse(new JSONObject(str), this.activity, this.apiKey, this);
                return;
            } catch (JSONException unused) {
            }
        }
        try {
            oncomplete(JSONObjectInstrumentation.toString(new JSONObject(str)));
        } catch (Exception e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getLocalizedMessage());
            AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PLUGIN_INTERNAL_CALLBACK_ERROR_EXCEPTION);
            oncomplete(str);
        }
    }

    @Override
    public void onPaymentSuccess(String str) {
        try {
            JSONObject jSONObject = new JSONObject(str);
            if (jSONObject.has(Consts.PROVIDER) && jSONObject.getString(Consts.PROVIDER).equalsIgnoreCase("GOOGLE_PAY")) {
                HashMap hashMap = new HashMap();
                WebView webView = this.webview;
                if (webView == null || webView.getUrl() == null || !this.webview.getUrl().contains("https://api.razorpay.com")) {
                    hashMap.put("activity_destroyed", Boolean.TRUE);
                    RazorpayUtils.handleUpiIntentPaymentWhenActivityDestroyed(jSONObject, this.activity, this.apiKey, this);
                } else {
                    hashMap.put("activity_destroyed", Boolean.FALSE);
                    try {
                        jSONObject.put("isWebviewVisible", this.webview.getVisibility() == 0);
                    } catch (Exception e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
                    }
                    this.webview.loadUrl("javascript: pollStatus(" + JSONObjectInstrumentation.toString(jSONObject) + ")");
                }
                hashMap.put("result", jSONObject);
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_NATIVE_INTENT_ONACTIVITY_RESULT, AnalyticsUtil.getJSONResponse(hashMap));
            }
        } catch (JSONException e2) {
            AnalyticsUtil.reportError("BaseRazorpay", "S0", e2.getMessage());
        }
    }

    public void onProgressChanged(WebView webView, int i) {
    }

    public abstract void onRequestPermissionsResult(int i, String[] strArr, int[] iArr);

    public void onSuccess(String str, PaymentData paymentData) {
        PaymentResultListener paymentResultListener = this.paymentResultListener;
        if (paymentResultListener != null) {
            paymentResultListener.onPaymentSuccess(str);
            return;
        }
        PaymentResultWithDataListener paymentResultWithDataListener = this.paymentResultWithDataListener;
        if (paymentResultWithDataListener != null) {
            paymentResultWithDataListener.onPaymentSuccess(str, paymentData);
        }
    }

    @Override
    public void onUpiAppLaunched(String str, String str2) {
        this.upiAppLaunchedPackageName = str;
    }

    @Override
    @JavascriptInterface
    public final void oncomplete(final String str) {
        this.activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                SharedPreferenceUtil.setValue(BaseRazorpay.this.activity, "razorpay_payment_id", null);
                try {
                    BaseRazorpay.this.oncomplete(new JSONObject(str));
                } catch (Exception e) {
                    BaseRazorpay.this.onError(4, e.getMessage());
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                }
                AnalyticsUtil.postData();
                BaseRazorpay.this.finish();
            }
        });
    }

    public void openCheckout(JSONObject jSONObject, PaymentResultListener paymentResultListener) {
        this.paymentResultListener = paymentResultListener;
        openCheckout(jSONObject);
    }

    @Override
    public void openUpiApp(String str, String str2) {
        HashMap<String, String> allPluginsFromManifest = BaseUtils.getAllPluginsFromManifest(this.activity);
        if (allPluginsFromManifest == null || allPluginsFromManifest.size() == 0 || !isPluginSupportedApp(allPluginsFromManifest, str) || this.payload.has("recurring")) {
            navigateToApp(str, str2);
            return;
        }
        Iterator<String> it = allPluginsFromManifest.values().iterator();
        while (it.hasNext()) {
            try {
                RzpPlugin rzpPlugin = (RzpPlugin) RzpPlugin.class.getClassLoader().loadClass(it.next()).newInstance();
                if (str.equalsIgnoreCase("com.google.android.apps.nbu.paisa.user")) {
                    rzpPlugin.isRegistered(this.activity, new RzpPluginRegisterCallback() {
                        @Override
                        public void onResponse(boolean z) {
                        }
                    });
                    try {
                        this.payload.put("_[app]", str);
                        this.payload.put("url_data", str2);
                    } catch (JSONException e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                    }
                }
                if (rzpPlugin.doesHandlePayload(this.apiKey, this.payload, this.activity)) {
                    this.isExtRzpPluginActive = true;
                    this.extActiveRzpPluginInstance = rzpPlugin;
                    rzpPlugin.processPayment(this.apiKey, this.payload, this.activity, this);
                    return;
                }
            } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | NullPointerException e2) {
                navigateToApp(str, str2);
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e2.getMessage());
                return;
            }
        }
    }

    public void otpResend(final CardsFlowCallback cardsFlowCallback) {
        callApi(getValueFromJsonArray("otp_resend", this.otpGeneratePayload), null, new NativeOtpCallback() {
            @Override
            public void onError(int i, String str) {
                BaseRazorpay.this.onError(i, str);
            }

            @Override
            public void onResponse(String str) {
                try {
                    JSONObject jSONObject = new JSONObject(str);
                    JSONArray jSONArray = jSONObject.getJSONArray("next");
                    for (int i = 0; i < jSONArray.length(); i++) {
                        if (jSONArray.getJSONObject(i).getString("action").equalsIgnoreCase("otp_submit")) {
                            BaseRazorpay.this.otpGeneratePayload = jSONObject;
                            cardsFlowCallback.otpResendResponse(true);
                            return;
                        }
                    }
                    cardsFlowCallback.otpResendResponse(false);
                } catch (JSONException e) {
                    AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                    cardsFlowCallback.otpGenerateResponse(false);
                }
            }
        });
    }

    public void otpSubmit(String str, final CardsFlowCallback cardsFlowCallback) {
        try {
            JSONObject jSONObject = new JSONObject();
            jSONObject.put(ho.a.KEY_OTP, str);
            callApi(getValueFromJsonArray("otp_submit", this.otpGeneratePayload), JSONObjectInstrumentation.toString(jSONObject), new NativeOtpCallback() {
                @Override
                public void onError(int i, String str2) {
                    BaseRazorpay.this.onError(i, str2);
                }

                @Override
                public void onResponse(String str2) {
                    try {
                        JSONObject jSONObject2 = new JSONObject(str2);
                        if (jSONObject2.has("next")) {
                            cardsFlowCallback.onOtpSubmitError(true);
                        } else {
                            BaseRazorpay.this.oncomplete(jSONObject2);
                        }
                    } catch (JSONException e) {
                        AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
                        cardsFlowCallback.onOtpSubmitError(true);
                    }
                }
            });
        } catch (JSONException e) {
            AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
        }
    }

    public void redirectToBankPage() {
        this.webview.loadUrl(getValueFromJsonArray("redirect", this.cardsFlowPayload));
    }

    public final void reset() {
        finish();
    }

    public final void setMagicView(ViewGroup viewGroup) {
        if (viewGroup == null) {
            throw new RuntimeException("Magic View cannot be null");
        }
        this.magicView = viewGroup;
        this.useBottomSheet = false;
    }

    @JavascriptInterface
    public final void setPaymentID(String str) {
        this.payment_id = str;
        setPaymentIdInAddon(str);
        AnalyticsUtil.addProperty(RazorpayModule.MAP_KEY_PAYMENT_ID, new AnalyticsProperty(str, AnalyticsProperty.Scope.PAYMENT));
        SharedPreferenceUtil.setValue(this.activity, "razorpay_payment_id", str);
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYMENT_ID_ATTACHED);
    }

    public abstract void setPaymentIdInAddon(String str);

    public abstract void setUpAddon(JSONObject jSONObject);

    public void setWebChromeClient(RazorpayWebChromeClient razorpayWebChromeClient) {
        this.razorpayWebChromeClient = razorpayWebChromeClient;
    }

    public void setWebView(WebView webView) {
        this.webview = webView;
        BaseUtils.setWebViewSettings(this.activity, webView, true);
        webView.clearFormData();
        webView.addJavascriptInterface(this, "CheckoutBridge");
    }

    public void setWebviewClient(RazorpayWebViewClient razorpayWebViewClient) {
        this.razorpayWebViewClient = razorpayWebViewClient;
    }

    public void setup(JSONObject jSONObject) {
        if (this.webview == null) {
            throw new Exception("WebView Inaccessible");
        }
        if (this.razorpayWebChromeClient == null) {
            this.razorpayWebChromeClient = new RazorpayWebChromeClient(this);
        }
        if (this.razorpayWebViewClient == null) {
            this.razorpayWebViewClient = new RazorpayWebViewClient(this);
        }
        this.webview.setWebViewClient(this.razorpayWebViewClient);
        this.webview.setWebChromeClient(this.razorpayWebChromeClient);
        this.payment_id = null;
        this.ongoingPayment = true;
        checkAndRestorePreviousSessionIfRetry(jSONObject);
        setUpAddon(jSONObject);
    }

    public void submit(JSONObject jSONObject, PaymentResultListener paymentResultListener) {
        this.paymentResultListener = paymentResultListener;
        submit(jSONObject);
    }

    public abstract void trackBackPress();

    public void validateFields(JSONObject jSONObject, ValidationListener validationListener) {
        Map<String, String> validateFields = Validation.validateFields(jSONObject);
        if (validateFields == null) {
            validationListener.onValidationSuccess();
        } else {
            validationListener.onValidationError(validateFields);
        }
    }

    public void oncomplete(JSONObject jSONObject) {
        try {
            int i = 5;
            if (jSONObject.has("error")) {
                AnalyticsProperty.Scope scope = AnalyticsProperty.Scope.PAYMENT;
                AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("fail", scope));
                AnalyticsUtil.addProperty(io.heap.core.data.model.a.PAYLOAD, new AnalyticsProperty(JSONObjectInstrumentation.toString(jSONObject), scope));
                if (jSONObject.has("sdk_error_code")) {
                    i = jSONObject.getInt("sdk_error_code");
                    jSONObject.remove("sdk_error_code");
                }
                AnalyticsUtil.addProperty("return code", new AnalyticsProperty(i, scope));
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYMENT_COMPLETE);
                onError(i, JSONObjectInstrumentation.toString(jSONObject));
                return;
            }
            if (jSONObject.has("razorpay_payment_id")) {
                PaymentData paymentData = getPaymentData(jSONObject);
                String paymentId = paymentData.getPaymentId();
                AnalyticsProperty.Scope scope2 = AnalyticsProperty.Scope.PAYMENT;
                AnalyticsUtil.addProperty(RazorpayModule.MAP_KEY_PAYMENT_ID, new AnalyticsProperty(paymentId, scope2));
                AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty(SaslStreamElements.Success.ELEMENT, scope2));
                AnalyticsUtil.addProperty(io.heap.core.data.model.a.PAYLOAD, new AnalyticsProperty(JSONObjectInstrumentation.toString(jSONObject), scope2));
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYMENT_COMPLETE);
                RazorpayUtils.setLastPaymentSuccessful(this.activity, true);
                onSuccess(paymentData.getPaymentId(), paymentData);
                return;
            }
            if (jSONObject.length() == 0) {
                AnalyticsProperty.Scope scope3 = AnalyticsProperty.Scope.PAYMENT;
                AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("fail", scope3));
                AnalyticsUtil.addProperty(io.heap.core.data.model.a.PAYLOAD, new AnalyticsProperty("empty payload", scope3));
                AnalyticsUtil.addProperty("return code", new AnalyticsProperty("4", scope3));
                AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYMENT_COMPLETE);
                onError(5, "You may have canceled the payment or the payment would have timed out");
                return;
            }
            AnalyticsProperty.Scope scope4 = AnalyticsProperty.Scope.PAYMENT;
            AnalyticsUtil.addProperty("payment_status", new AnalyticsProperty("fail", scope4));
            AnalyticsUtil.addProperty(io.heap.core.data.model.a.PAYLOAD, new AnalyticsProperty(JSONObjectInstrumentation.toString(jSONObject), scope4));
            AnalyticsUtil.addProperty("return code", new AnalyticsProperty("4", scope4));
            AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_PAYMENT_COMPLETE);
            onError(4, "Post payment parsing error");
        } catch (Exception e) {
            onError(4, e.getMessage());
            AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
        }
    }

    public void getPaymentMethods(JSONObject jSONObject, final PaymentMethodsCallback paymentMethodsCallback) {
        String str;
        if (jSONObject != null && jSONObject.has("subscription_id")) {
            try {
                str = jSONObject.getString("subscription_id");
            } catch (Exception e) {
                AnalyticsUtil.reportError("BaseRazorpay", "S1", e.getMessage());
            }
            fetchPreferences(str, new FetchPreferencesCallback() {
                @Override
                public void onError(String str2) {
                    paymentMethodsCallback.onError(str2);
                }

                @Override
                public void onResponse(String str2) {
                    paymentMethodsCallback.onPaymentMethodsReceived(BaseRazorpay.getPaymentMethodsFromPreferences(str2));
                }
            });
        }
        str = null;
        fetchPreferences(str, new FetchPreferencesCallback() {
            @Override
            public void onError(String str2) {
                paymentMethodsCallback.onError(str2);
            }

            @Override
            public void onResponse(String str2) {
                paymentMethodsCallback.onPaymentMethodsReceived(BaseRazorpay.getPaymentMethodsFromPreferences(str2));
            }
        });
    }

    public void openCheckout(JSONObject jSONObject, PaymentResultWithDataListener paymentResultWithDataListener) {
        this.paymentResultWithDataListener = paymentResultWithDataListener;
        openCheckout(jSONObject);
    }

    public void submit(JSONObject jSONObject, PaymentResultWithDataListener paymentResultWithDataListener) {
        this.paymentResultWithDataListener = paymentResultWithDataListener;
        submit(jSONObject);
    }

    public void openCheckout(JSONObject jSONObject) {
        if (!BaseUtils.isDeviceHaveCorrectTlsVersion()) {
            AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_TLS_ERROR);
            onError(6, "TLSv1  is not supported for security reasons");
            return;
        }
        handlePayload(jSONObject);
        AnalyticsUtil.addFilteredPropertiesFromPayload(jSONObject);
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_SUBMIT_START);
        String r = a.r(new StringBuilder("<input type='hidden' name='key_id' value='"), this.apiKey, "'>");
        Iterator<String> keys = jSONObject.keys();
        while (keys.hasNext()) {
            String next = keys.next();
            Object obj = jSONObject.get(next);
            if (!next.equals("upi_app_package_name") && !next.equals("display_logo") && !next.equals("preferred_apps_order") && !next.equals("other_apps_order")) {
                if (obj instanceof JSONObject) {
                    JSONObject jSONObject2 = jSONObject.getJSONObject(next);
                    Iterator<String> keys2 = jSONObject2.keys();
                    while (keys2.hasNext()) {
                        String next2 = keys2.next();
                        String sanitize = RazorpayUtils.sanitize(jSONObject2.getString(next2));
                        String sanitize2 = RazorpayUtils.sanitize(q.k(next, QBRecordParameterQueryDecorator.LEFT_BRACKET, next2, QBRecordParameterQueryDecorator.RIGHT_BRACKET));
                        StringBuilder v = t2.v(r);
                        v.append(a.n("<input type='hidden' name='", sanitize2, "' value='", sanitize, "'>"));
                        r = v.toString();
                    }
                } else {
                    String sanitize3 = RazorpayUtils.sanitize(jSONObject.getString(next));
                    StringBuilder v2 = t2.v(r);
                    v2.append(a.n("<input type='hidden' name='", next, "' value='", sanitize3, "'>"));
                    r = v2.toString();
                }
            }
        }
        String replace = "<html><head><title>Processing, Please Wait...</title><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><meta http-equiv=\"pragma\" content=\"no-cache\"><meta http-equiv=\"cache-control\" content=\"no-cache\"><style><style> html, body { width: 100%; } #content { width: 88%; max-width: 520px; text-align: center; position: absolute; transform: translate(-50%, -50%); top: 50%; left: 50%; } #title { color: #528ff0; font-size: 22px; } #ldr { width: 100%; height: 1px; position: relative; background: #e1e1e1; } #lding { height: 3px; top: -1px; background: #528ff0; position: absolute; animation: spin 20s cubic-bezier(0,0.1,0,1) forwards; animation-delay: 10; } @-webkit-keyframes spin { 0% { width: 0; } 100% { width: 90%; } } @keyframes spin { 0% { width: 0; } 100% { width: 90%; } } #desc { font-size: 16px; color: #8a8a8a; } #content > div { margin-bottom: 20px; } form { display: none; } .hide { display: none; }</style></head><body onload=\"document.forms[0].submit()\"><div id=\"content\"> <div id=\"title\">Processing Payment</div> <div id=\"ldr\"> <div id=\"lding\"></div> </div> <div id=\"desc\">Please wait while we fetch your transaction details and process your payment</div> <img id=\"rzplogo\" style=\"width:160px;margin-top:80px\" src=\"data:image/png;base64,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\"/>{{form}}</div></body><script></script></html>".replace("{{form}}", a.s(new StringBuilder("<form method='post' action='"), this.apiUrl, "checkout/embedded'>", appendPaymentAnalytics(r), "</form>"));
        if (!this.mShouldDisplayLogo) {
            replace = replace.replace("<script></script>", "<script>document.getElementById('rzplogo').className = 'hide';</script>");
        }
        this.webview.loadDataWithBaseURL("https://api.razorpay.com", replace, "text/html", "UTF-8", null);
    }

    public void submit(HashMap<String, Object> hashMap, PaymentResultWithDataListener paymentResultWithDataListener) {
        this.paymentResultWithDataListener = paymentResultWithDataListener;
    }

    public void submit(JSONObject jSONObject) {
        int i;
        if (!BaseUtils.isDeviceHaveCorrectTlsVersion()) {
            AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_TLS_ERROR);
            onError(6, "TLSv1  is not supported for security reasons");
            return;
        }
        this.payload = jSONObject;
        handlePayload(jSONObject);
        AnalyticsUtil.addFilteredPropertiesFromPayload(jSONObject);
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_SUBMIT_START);
        if (jSONObject.has(Consts.PROVIDER) && jSONObject.getString(Consts.PROVIDER).equalsIgnoreCase("google_pay")) {
            payWithGpayFeature();
            return;
        }
        if (jSONObject.has("method") && jSONObject.getString("method").equalsIgnoreCase("upi") && jSONObject.has("recurring") && jSONObject.getString("recurring").equalsIgnoreCase("preferred")) {
            jSONObject.remove("recurring");
            if (!jSONObject.has("upi_app_package_name") || doesPackageSupportAutoPay(jSONObject.optString("upi_app_package_name"))) {
                jSONObject.put("recurring", "1");
            }
        }
        String r = a.r(new StringBuilder("<input type='hidden' name='key_id' value='"), this.apiKey, "'>");
        if (jSONObject.has(Consts.PROVIDER) && jSONObject.getString(Consts.PROVIDER).equalsIgnoreCase("cred")) {
            if (jSONObject.has("app_present") && jSONObject.getBoolean("app_present")) {
                payWithCred();
                return;
            }
            try {
                jSONObject.remove("app_present");
                jSONObject.put("app_present", 0);
            } catch (JSONException e) {
                AnalyticsUtil.reportError("BaseRazorpay", "S0", e.getMessage());
            }
            r = t2.o(r, "<input type='hidden' name='_[agent]' value='{\n  \"os\":\"android\",\n  \"platform\":\"app\",\n  \"device\":\"mobile\"\n}'>");
        }
        Iterator<String> keys = jSONObject.keys();
        while (keys.hasNext()) {
            String next = keys.next();
            Object obj = jSONObject.get(next);
            if (next.equalsIgnoreCase("method") && Config.getInstance().getIsOtpReadEnabled() && (((i = Build.VERSION.SDK_INT) >= 29 || ContextCompat.checkSelfPermission(this.activity, "android.permission.RECEIVE_SMS") != 0) && (obj.toString().equalsIgnoreCase("netbanking") || obj.toString().equalsIgnoreCase("card")))) {
                SmsRetriever.getClient(this.activity).startSmsUserConsent((String) null);
                IntentFilter intentFilter = new IntentFilter("com.google.android.gms.auth.api.phone.SMS_RETRIEVED");
                AutoReadOtpHelperCustom autoReadOtpHelperCustom = new AutoReadOtpHelperCustom(this.activity);
                if (i >= 34 && this.activity.getApplicationInfo().targetSdkVersion >= 34) {
                    this.activity.registerReceiver(autoReadOtpHelperCustom, intentFilter, 2);
                } else {
                    this.activity.registerReceiver(autoReadOtpHelperCustom, intentFilter);
                }
                AnalyticsUtil.trackEvent(AnalyticsEvent.AUTO_READ_OTP_SMS_RETRIEVER_API_TASK);
            }
            if (!next.equals("upi_app_package_name") && !next.equals("display_logo") && !next.equals("preferred_apps_order") && !next.equals("other_apps_order")) {
                if (obj instanceof JSONObject) {
                    JSONObject jSONObject2 = jSONObject.getJSONObject(next);
                    Iterator<String> keys2 = jSONObject2.keys();
                    while (keys2.hasNext()) {
                        String next2 = keys2.next();
                        String sanitize = RazorpayUtils.sanitize(jSONObject2.getString(next2));
                        String sanitize2 = RazorpayUtils.sanitize(q.k(next, QBRecordParameterQueryDecorator.LEFT_BRACKET, next2, QBRecordParameterQueryDecorator.RIGHT_BRACKET));
                        StringBuilder v = t2.v(r);
                        v.append(a.n("<input type='hidden' name='", sanitize2, "' value='", sanitize, "'>"));
                        r = v.toString();
                    }
                } else {
                    String sanitize3 = RazorpayUtils.sanitize(jSONObject.getString(next));
                    StringBuilder v2 = t2.v(r);
                    v2.append(a.n("<input type='hidden' name='", next, "' value='", sanitize3, "'>"));
                    r = v2.toString();
                }
            }
        }
        String replace = "<html><head><title>Processing, Please Wait...</title><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/><meta http-equiv=\"pragma\" content=\"no-cache\"><meta http-equiv=\"cache-control\" content=\"no-cache\"><style><style> html, body { width: 100%; } #content { width: 88%; max-width: 520px; text-align: center; position: absolute; transform: translate(-50%, -50%); top: 50%; left: 50%; } #title { color: #528ff0; font-size: 22px; } #ldr { width: 100%; height: 1px; position: relative; background: #e1e1e1; } #lding { height: 3px; top: -1px; background: #528ff0; position: absolute; animation: spin 20s cubic-bezier(0,0.1,0,1) forwards; animation-delay: 10; } @-webkit-keyframes spin { 0% { width: 0; } 100% { width: 90%; } } @keyframes spin { 0% { width: 0; } 100% { width: 90%; } } #desc { font-size: 16px; color: #8a8a8a; } #content > div { margin-bottom: 20px; } form { display: none; } .hide { display: none; }</style></head><body onload=\"document.forms[0].submit()\"><div id=\"content\"> <div id=\"title\">Processing Payment</div> <div id=\"ldr\"> <div id=\"lding\"></div> </div> <div id=\"desc\">Please wait while we fetch your transaction details and process your payment</div> <img id=\"rzplogo\" style=\"width:160px;margin-top:80px\" src=\"data:image/png;base64,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\"/>{{form}}</div></body><script></script></html>".replace("{{form}}", a.s(new StringBuilder("<form method='post' action='"), this.apiUrl, "payments/create/checkout'>", appendPaymentAnalytics(r), "</form>"));
        if (!this.mShouldDisplayLogo) {
            replace = replace.replace("<script></script>", "<script>document.getElementById('rzplogo').className = 'hide';</script>");
        }
        this.webview.loadDataWithBaseURL(GlobalUrlConfig.instance().getBaseUrl(), replace, "text/html", "UTF-8", null);
    }

    @Deprecated
    public static List<ApplicationDetails> getAppsWhichSupportUpi(Context context) {
        AnalyticsUtil.trackEvent(AnalyticsEvent.CUSTOM_UI_GET_APPS_SUPPORTING_UPI);
        return getUPISupportedApps(context);
    }

    public BaseRazorpay(Activity activity, String str, JSONObject jSONObject) {
        this.useBottomSheet = true;
        this.isExtRzpPluginActive = false;
        this.apiUrl = "https://api.razorpay.com/v1/";
        this.payload = new JSONObject();
        this.cardsFlowPayload = new JSONObject();
        this.otpGeneratePayload = new JSONObject();
        this.ongoingPayment = false;
        this.mShouldDisplayLogo = true;
        this.canUseGpayFeature = false;
        this.upiBlacklistedApps = new HashSet<>();
        this.upiAutoPaySupportedApps = new HashSet<>();
        this.upiWhiteListedApps = new HashSet<>();
        this.configAppsPreferredOrder = new LinkedHashSet<>();
        GlobalUrlConfig.initiate(jSONObject);
        this.apiUrl = GlobalUrlConfig.instance().getBaseUrl() + "/v1/";
        this.mShouldDisplayLogo = false;
        this.apiKey = str.split("rzp_")[1];
        initRazorpay(activity);
    }

    public BaseRazorpay(Activity activity) {
        this.useBottomSheet = true;
        this.isExtRzpPluginActive = false;
        this.apiUrl = "https://api.razorpay.com/v1/";
        this.payload = new JSONObject();
        this.cardsFlowPayload = new JSONObject();
        this.otpGeneratePayload = new JSONObject();
        this.ongoingPayment = false;
        this.mShouldDisplayLogo = true;
        this.canUseGpayFeature = false;
        this.upiBlacklistedApps = new HashSet<>();
        this.upiAutoPaySupportedApps = new HashSet<>();
        this.upiWhiteListedApps = new HashSet<>();
        this.configAppsPreferredOrder = new LinkedHashSet<>();
        initRazorpay(activity);
        GlobalUrlConfig.initiate(null);
    }
}