首页 > 解决方案 > Android UPI 支付意图总是失败

问题描述

这就是我想要做的。我的应用有两种类型的用户——买家和卖家。卖家可以提供他们的 UPI ID,买家可以使用其设备上安装的任何 UPI 应用程序使用提供的卖家 UPI ID 向卖家付款。

我正在构建一个 UPI 支付 URL,如下所示:

String upiPaymentUrl = upi://pay?pa=<<Seller VPA ID>>&pn=<<Payee name>>&tn=<<Txn description>>&cu=INR

然后,我使用以下代码显示手机上所有启用 UPI 的应用程序:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(upiPaymentUrl));
Intent chooser = Intent.createChooser(intent, getString(R.string.payment_title));
startActivityForResult(chooser, Constant.REQUEST_CODE_UPIPAYMENT, null);

选择的 UPI 应用程序已启动,并且我在 URI 中提供的所有数据都已正确填写。然后我开始付款,但付款总是失败。当我按原样使用 UPI 应用程序(没有从我的应用程序调用)并使用我用来构造 UPI URL 的相同值时,付款会顺利进行,不会出现任何错误。当我从我的应用程序调用 UPI 应用程序时,知道是什么导致付款失败吗?

任何帮助/建议将不胜感激!

标签: androiddeep-linkingupi

解决方案


根据 NPCI 的新规则,所有 upi 应用都绑定了最小交易。

如果receiver upi id 注册为非商业upiid,则无法成功支付。

所以解决方案是创建新的业务 UPI id。


推荐阅读