0

在此处输入图像描述

尝试使用深层链接为我的 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(" ", "+");
}

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

4

2 回答 2

2

错误是T04意味着 refId 应该是具有 minlength 1 和 maxlength 35 的字母数字。而不是 test_101 使用 test101。

于 2017-11-15T11:50:22.540 回答
2

我从事 UPI 工作并将其集成到我的 Android 项目中。我还创建了一个对您有用的GitHub 存储库。

使用深度链接,您将获得大部分支持 UPI 的应用程序,但问题是所有应用程序都无法正确返回值。我已经测试过 Paytm、Google pay 和 freecharge 等等。但是这些应用程序的返回值非常好。由于这个问题,我创建了自定义意图选择器,以便排除那些在付款后不返回值的应用程序。除此之外,您将获得 QR 码的代码以生成和扫描 UPI QR 码。

想了解更多,这里有一份文档

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

于 2018-09-14T22:37:23.753 回答