首页 > 解决方案 > 无法在禁用 webview 的设备上启动 paytm UPI

问题描述

我正在尝试在 Android 上深度链接到 paytm UPI。它在普通设备上运行良好,但带有禁用 android 系统 Webview 的设备不会进入 UPI 并显示“没有应用程序可以执行此操作”。


注意:- 已安装最新版本的 Google Chrome,并且也设置为默认应用。如果此代码有任何改进,请告诉我。

Uri uri = Uri.parse("upi://pay").buildUpon()
                .appendQueryParameter("pa", "paytm-********@paytm")
                .appendQueryParameter("pn", "Demo")
                .appendQueryParameter("tr", txnID)
                .appendQueryParameter("mc", "****")
                .appendQueryParameter("tn", "Payment against Order: " + txnID)
                .appendQueryParameter("am", 
ServiceUtility.chkNull(MyApplication.cartTotal).toString().trim())  
//ServiceUtility.chkNull(MyApplication.cartTotal).toString().trim()
                .appendQueryParameter("cu", "INR")
                .build();

        Logger.error("proceedToMakeUPI", "uri " + uri);

        Intent upiPayIntent = new Intent(Intent.ACTION_VIEW);
        upiPayIntent.setData(uri);

        ComponentName name = new ComponentName("net.one97.paytm", 
"net.one97.paytm.upi.deeplink.UPIDeeplinkActivity");
        upiPayIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        upiPayIntent.setComponent(name);

        Intent chooser = Intent.createChooser(upiPayIntent, "Pay with");

        if (null != chooser.resolveActivity(getContext().getPackageManager())) {
            Logger.error("proceedToMakeUPI", "UPI Payment resolved to activity");
            startActivityForResult(chooser, REQ_UPIPAYMENT);
        } else {
            Logger.error("proceedToMakeUPI", "No activity found to handle UPI Payment");
        }

标签: androidandroid-webviewdeep-linkingpaytm

解决方案


推荐阅读