无法使用 UPI URI 调用 PSP 应用程序

Posted

技术标签:

【中文标题】无法使用 UPI URI 调用 PSP 应用程序【英文标题】:not able to invoke PSP apps using UPI URI 【发布时间】:2017-03-14 05:34:00 【问题描述】:

从-开始

我知道有一个类似的问题已经得到解答。但是答案对我没有帮助。

Invoke PSP app with UPI url

我的问题是一样的 -

使用UPI url如下

    String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setData(Uri.parse(UPI));
    Intent chooser = Intent.createChooser(intent, "Pay with...");
    startActivityForResult(chooser, 1, null);

在我使用 setData 的那一刻,我停止获取可以与之共享的应用程序列表(列表为空)。如果我删除 setData,应用程序(短信、电子邮件等)的常规列表开始弹出,银行应用程序(接受 UPI,比如 ICICI/HDFC)不是其中之一。

这里可能出了什么问题?,

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

替换这个:

String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
startActivityForResult(chooser, 1, null);

用这个:

String UPI = "upi://pay?pa=xsas@hdfcbank&pn=ABC+DEF&mc=qy67vt&tr=12121&tn=your+order+with+us&am=1.5&url=shopify.com";
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); // this line needs to be updated
intent.setData(Uri.parse(UPI));
Intent chooser = Intent.createChooser(intent, "Pay with...");
startActivityForResult(chooser, 1, null);

这是因为所有深层链接的 upi 应用都需要处理传入的 Intent,需要使用 View Action 调用它们。

【讨论】:

此更新也不起作用。意图.setAction(意图.ACTION_VIEW);我在使用 icici 的“口袋”应用程序时也得到了未定义的响应【参考方案2】:

您可以从意图中省略 intent.setAction(Intent.ACTION_SEND); 部分,因为这不是强制性的,不同的应用会处理不同的操作。

正如您在您提到的原始问题中看到的那样,没有setAction

【讨论】:

以上是关于无法使用 UPI URI 调用 PSP 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

网络上的 UPI 付款响应

从我的 react-native 应用程序调用 UPI 应用程序在 iOS 中有效,但在 Android 中无效

使用超链接集成 UPI 后如何获得响应

调用 Intent 加载 UPI Payment App 时出现异常:android.content.ActivityNotFoundException: No Activity found to h

使用 URL 方案的 Google Pay UPI 集成 - iOS

谷歌支付 UPI 在 asp.net 中的集成