使用UPI url调用PSP应用程序

dee*_*eep 6 payment android payment-gateway upi

我正在尝试创建一个商家应用程序,它将根据NPCI的指南生成一个URL.此网址将作为意图共享,PSP应用程序(任何已注册的银行应用程序)应该能够侦听该网址并被调用.

我已经形成了这样的网址: -

UPI://支付PA = ICICI /名称及PN = USER_NAME与TID = 422d97c1-f0fc-4BEA-B24A-511ffa85e86f&AM = 442.87与TN =测试%的交易

现在我发送这样的意图: -

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, UPI);
sendIntent.setType("text/plain");
startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)

Icici银行应用程序未显示在接收器应用程序中.我正确地创建了网址吗?

UPI最近刚刚发布,我无法通过互联网获得良好的资源.

注意 - 在url中,tid(事务id)是在我的应用程序中生成的随机uuid.

dee*_*eep 7

找到了正确的方法.您需要以问题中提到的正确方式构建URL.之后,此URL必须转换为URI并作为数据发送到intent.

Intent intent = new Intent();
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
startActivityForResult(chooser, 1, null);
Run Code Online (Sandbox Code Playgroud)

在那之后,在你的onActivityResult中,检查requestCode和id收到的意图数据是否为null.如果没有,那么数据将包含stringExtra作为响应.此响应将包含状态,事务引用,transactionId和响应代码.

此外,网址中的空格应替换为"+"而不是"%".