与Android应用程序集成的UPI深层链接问题 [英] UPI deep link issue with android app integration

查看:146
本文介绍了与Android应用程序集成的UPI深层链接问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用本机代码进行upi深度链接. 当意图在Bhim应用程序的付款细节页面上调用而未显示时,而其他PSP应用程序重定向到付款页面 当我从移动浏览器中单击类似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);
        }

I am using native code for upi deep linking. When intent invoke on bhim app payment details page in not showing while other psp app redirecting to payment page When I click a url from mobile browser like this upi://pay?pa=98955012345@upi&pn=abc&am=1 it opens BHIM app with pre-filled page of payee details.

However when I use my merchant app, to link it through intent deep-linking, it opens BHIM but does not redirect to pre-filled page.

解决方案

It really works for the BHIM application also. Use this Code it works like a charm for every PSP enabled applications.

Note: Instead of using the "%" better to use "+" to replace the white space from the URL. That works better.

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(" ", "+");

}

Then pass the parameters in the method and pass the string to the Intent in this way:

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);
        }

这篇关于与Android应用程序集成的UPI深层链接问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆