Я пытаюсь диплинк на PayTM UPI на Android. Он работает нормально на обычных устройствах, но на устройствах с отключенной системой 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");
}