这就是我想要做的。我的应用有两种类型的用户——买家和卖家。卖家可以提供他们的 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 应用程序时,知道是什么导致付款失败吗?
任何帮助/建议将不胜感激!