我正在使用本机代码进行 upi 深度链接。当在 bhim 应用程序支付详细信息页面上的意图调用未显示而其他 psp 应用程序重定向到支付页面时当我从移动浏览器中单击 URL 时,例如 upi://pay?pa=98955012345@upi&pn=abc&am=1 它会打开 BHIM 应用程序收款人详细信息的预填页面。
但是,当我使用我的商家应用程序通过意图深度链接进行链接时,它会打开 BHIM 但不会重定向到预填充页面。
我正在使用本机代码进行 upi 深度链接。当在 bhim 应用程序支付详细信息页面上的意图调用未显示而其他 psp 应用程序重定向到支付页面时当我从移动浏览器中单击 URL 时,例如 upi://pay?pa=98955012345@upi&pn=abc&am=1 它会打开 BHIM 应用程序收款人详细信息的预填页面。
但是,当我使用我的商家应用程序通过意图深度链接进行链接时,它会打开 BHIM 但不会重定向到预填充页面。
它也适用于 BHIM 应用程序。使用此代码,它对每个启用 PSP 的应用程序都具有吸引力。
注意:最好使用“+”代替 URL 中的空格,而不是使用“%”。这样效果更好。
private String getUPIString(String payeeAddress, String payeeName, String payeeMCC, String trxnID, String trxnRefId,
String trxnNote, String payeeAmount, String currencyCode, String refUrl) {
String UPI = "upi://pay?pa=" + payeeAddress + "&pn=" + payeeName
+ "&mc=" + payeeMCC + "&tid=" + trxnID + "&tr=" + trxnRefId
+ "&tn=" + trxnNote + "&am=" + payeeAmount + "&cu=" + currencyCode
+ "&refUrl=" + refUrl;
return UPI.replace(" ", "+");
}
然后将方法中的参数传递给Intent,这样就可以了:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
startActivityForResult(chooser, 1, null);
}