android - UPI App Deep linking using Intent - 不一致和错误的行为

标签 android android-intent upi

我已经使用 intent 从我的 android native 应用程序深度链接了 UPI 应用程序。我已经使用 BHIM、PhonePe、AXIS、UnionBank、Pockets 等各种 UPI 应用程序对此进行了测试。

我创建了推送支付 URI。我能够启动各种 UPI 应用程序。但是行为非常不一致。

"upi://pay?pa=xxxxx@upi&pn=payee&am=5.00&tn=Test_Transaction"

  1. 大多数应用程序都会在调用 Intent 时做出响应。他们启动了。
  2. 很少有应用能正确显示带有金额的支付页面。休息应用程序根本不显示该页面。 PhonePe,轴显示。 BHIM 没有显示支付页面
  3. 仅通过 PhonePay 和 Axis 成功完成付款
  4. UPI 付款成功完成后,UPI 应用程序关闭,控制权返回我的应用程序。但是,响应数据始终为 NULL。付款成功后,没有任何应用程序提供响应数据
  5. 如果付款失败或我在 UPI 应用程序中取消付款或我没有输入正确的 PIN 码并关闭 UPI 应用程序,大多数应用程序不会返回响应数据。
  6. 只有 AXISPay 返回响应数据: Intent {(有额外内容)}

任何人 - 有什么意见吗?为什么会出现这种不一致的行为?

令人惊讶的是深度链接无法与 BHIM 应用程序一起使用。

如果有人想尝试,我可以分享 android 代码。

最佳答案

它也确实适用于 BHIM 应用程序。使用此代码,它对每个支持 PSP 的应用程序都非常有用。

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

然后在方法中传递参数,将字符串传递给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);
            }

关于android - UPI App Deep linking using Intent - 不一致和错误的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44985944/

相关文章:

android - 我如何在 unity 的导出项目中添加额外的代码行到 android studio?

Android DialogFragment 在屏幕旋转时崩溃

java - 单击时将数据 RecyclerView 数据传递到另一个 Activity

android - tabhost 安卓

android - 如何在微调器中单击更多项目并突出显示它?

c# - 扫描 Wifi 网络不会返回 Xamarin 代码中的值

java - 没有方法在 RemoteViewsService 中触发 - Android

ios - 如何在 iOS swift 中集成 Google Pay?

ios - UPI 深层链接问题 - iOS

java - 如何通过 android java 发送 google pay "Request"像 amazon bhim pay 在线支付