UPI Deep Link - 无法完成交易

UPI Deep Link - Unable to complete the transaction

尝试为我的 Android 应用程序使用深度链接连接 UPI 支付,但每次都在最后一步失败。

UPI支付调用的代码片段如下:

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            URI_URL = getUPIString("xxx@upi", "xxx xxx", "test_101", "Test Transaction", "10", "INR");

            //Creating an intent for the UPI APP
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(URI_URL));
            Intent chooser = Intent.createChooser(intent, "Pay the MSME by");
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                startActivityForResult(chooser, 1, null);
            }
        }
    });

使用此函数构建 UPI 字符串:

       private String getUPIString(String payeeAddress, String payeeName, String trxnRefId,
                            String trxnNote, String payeeAmount, String currencyCode) {
    String UPI = "upi://pay?pa=" + payeeAddress + "&pn=" + payeeName
            + "&tr=" + trxnRefId
            + "&tn=" + trxnNote + "&am=" + payeeAmount + "&cu=" + currencyCode;
    return UPI.replace(" ", "+");
}

失败的可能原因是什么?欢迎任何建议或帮助。

错误是 T04,这意味着 refId 应该是 字母数字,最小长度为 1,最大长度为 35。而不是 test_101 使用 test101.

我参与了 UPI 并将其集成到我的 Android 项目中。我还创建了一个对您有用的 GitHub repository

使用深层链接,您将获得大部分支持 UPI 的应用程序,但问题是所有应用程序都没有 return 正确值。我已经测试了 Paytm、Google 付费和免费充电等等。但是这些app return 值很好。 由于这个问题,我创建了自定义意向选择器,以便排除那些在付款后没有 return 价值的应用程序。与此同时,您将获得用于生成和扫描 UPI 二维码的二维码代码。

想了解更多,这里是document.

请检查并告诉我,它是否对您有帮助。有问题问我