3

I was trying to implement UPI intent, but whenever i am paying it's saying maximum limit exceeded in google pay, in phone pe, It's showing due to security issue, you cannot pay with this bank account. Please help me out. here is my code.

                    Uri UPI = Uri.parse("upi://pay").buildUpon()
                            .appendQueryParameter("pa", "") //rList.get(i).upi_id
                            .appendQueryParameter("pn", "") //rList.get(i).username
                            .appendQueryParameter("tn", "TEST") //rList.get(i).paylist_name
                            .appendQueryParameter("tr", ""+StaticValues.transactionId)
                            .appendQueryParameter("tid", ""+StaticValues.transactionId)
                            .appendQueryParameter("am", ""+rList.get(i).payble_amount)
                            .appendQueryParameter("cu", "INR")
                            //.appendQueryParameter("orgid", "000000")
                            //.appendQueryParameter("mode", "04")
                            .build();
                    Intent intent = new Intent();
                    intent.setAction(Intent.ACTION_VIEW);
                    intent.setData(UPI);
                    Intent chooser = Intent.createChooser(intent, "Pay with...");
                    startActivityForResult(chooser, 1);
4

1 回答 1

0

这里有类似的问题,解决方案似乎是创建一个商家帐户(商业帐户)并从该帐户(包括商家 ID“mc”)传递参数以进行支付处理。请在此处查看 Google 的 UPI 规范。话虽如此,我只使用了四个参数(pa、pn、tn 和 am)对其进行了测试,但我生成了一个二维码并从 GPay 应用程序中扫描,它可以正常工作。

我的结论是,安全措施仅适用于应用内生成的 upi 支付 URI,如果我们从 UPI 支付应用进行扫描,则不会考虑这些附加参数。

如果我们可以生成 QR 码并通过 UPI 应用程序的扫描进行支付,它就可以工作。但我不认为我们可以让另一个应用程序扫描我们生成的二维码。

编辑 27-08-2021

我能够成功地向非商家帐户进行 UPI 付款,但我无法进行自动付款验证。如果您想使用这种方法,请继续阅读。

限制:

  1. 付款需要通过交易 ID 手动验证,在我的情况下,我会生成一个账单号以供参考。
  2. 用户必须截取二维码的屏幕截图(或者您可以编写屏幕截图片段)并通过二维码扫描手动支付 -> 从图库或图像源扫描。
  3. 完全不适合需要自动支付验证的应用。

怎么做:

  1. 使用以下参数创建二维码:
  • pa - 收款人地址 (UPI ID)
  • pn - 收款人姓名
  • am - 要支付的金额
  • tn - 交易记录(我在这里设置我的账单号码)
  1. 要求用户在截屏后通过图库扫描或编写代码以将 QR 的屏幕截图保存在设备中。
  2. 付款后参考交易单手动确认。

我知道这甚至不是一个理想的解决方案,但我已经尝试使用注册的商家帐户和简单的用户帐户,它适用于这两种情况。除了上述参数之外,我尝试传递我找到的商家帐户参数,但由于某种原因它不起作用。如果我将来找到它的原因,我会更新。

于 2021-08-16T10:00:16.347 回答