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

Posted

技术标签:

【中文标题】使用超链接集成 UPI 后如何获得响应【英文标题】:How to get response after integrating UPI using hyperlink 【发布时间】:2018-02-21 01:22:10 【问题描述】:

在我的 ios 应用程序中,我需要接受用户的付款。我正在使用 UPI。我遵循了UPI提供的以下文件

http://www.npci.org.in/documents/UPI-Linking-Specs-ver-1.1_draft.pdf

我已按照文档中的说明创建了深层链接。 UIApplication.shared.open 用于打开深层链接 url,以便在我的手机中打开任何已安装的 PSP(支付服务提供商)应用程序(如 PhonePe、BHIM 等)

func payButtonClicked() 

        guard let urlString = "upi://pay?pa=samplevpa@ybl&pn=Sample Name&am=1&cu=INR".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
            else 
                return
            

        guard let url = URL(string: urlString) else 
            return
        

        if !UIApplication.shared.canOpenURL(url) 
            print("url cannot be opened")
            return
        

        UIApplication.shared.open(url, options: [:], completionHandler:  (success) in

            print(success)

        )

    

我已经使用自定义 URL 方案注册了我的应用程序,并在 plist 文件中添加了 ApplicationQueriesScheme 的方案 upi

<array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>SampleApp</string>
            </array>
            <key>CFBundleURLName</key>
            <string>com.company.SampleApp</string>
        </dict>
    </array>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>upi</string>
    </array>

它正在打开 PSP 应用程序,我可以进行交易。问题是我无法从 PSP 应用程序中获取响应。 UIApplication.shared.open 方法没有回调方法。我需要从 PSP 应用程序中获取交易状态并将状态显示给用户。任何帮助表示赞赏

【问题讨论】:

你好阿伦,你的交易成功了吗?我正在尝试从我的 android 应用程序进行交易,但交易总是失败 交易对我来说是成功的。我的问题是我无法得到回复。我不知道用户是否真的付费了 我正在使用 cordova,我在我的 android 应用程序中得到响应,但无法从 iOS 调用 PSP 应用程序 您找到解决方案了吗?我无法从 iOS 调用 BHIM,非常感谢任何帮助。 你好 Arun,你收到 UPI 应用程序的回复了吗?我也遇到了同样的问题,就像你上面评论的那样。我在 Android 中成功获得响应,但在 IOS 中没有运气。如果是,请指导我。谢谢 【参考方案1】:

NPCI UPI 链接规范指出,支付链接中使用的 URL 参数是用于支付应用程序信息目的用于在点击链接时向付款人提供额外信息。

该链接仅应显示调用交易的商家或一方的交易详情。

不是作为回调 URL 或用于完成交易的网络挂钩。

【讨论】:

【参考方案2】:

根据以下工作流程,您需要与付款人/收款人 PSP 建立联系,才能收到付款通知。在您的情况下,您需要与您的银行 PSP 核实,以便在您的帐户中收到付款收据通知。

我看不到单个发起者获得通知的方法。

欢迎指正。

【讨论】:

一张非常有用的图表,有助于理解 UPI 支付工作流程。【参考方案3】:

没有尝试过,但是文档中提到了关于点击的url参数,我们应该向用户显示交易详细信息。

这应该是点击后为客户提供进一步信息的 URL 交易详情,例如完整的账单详情、账单副本、订单 副本、票务详细信息等。这也可用于交付数字 mp3文件等商品付款后。

我们可以发送一个带有重定向到应用程序的 url 方案或我们的应用程序可以处理的通用链接的 url。

同样,我还没有尝试过,所以我不知道这是否像我认为的那样有效,或者它是否能完全解决您的问题。

https://www.npci.org.in/sites/all/themes/npcl/images/PDF/UPI_Linking_Specs_ver_1.5.1.pdf

【讨论】:

【参考方案4】:

您可以使用 url 参数以订单 ID 或付款 ID 作为参数的 get 方法传递您的网站 url。付款成功后,UPI 提供商将要求点击 URL。 URL 的目的应该是不断更新交易状态,然后触发最终用户发送带有交易状态的电子邮件或 SMS。

【讨论】:

以上是关于使用超链接集成 UPI 后如何获得响应的主要内容,如果未能解决你的问题,请参考以下文章

jsp如何显示点击超链接后的图片

div设定onclick后,如何点其中的超链接不触发onclick

如何使用 python 更改 pdf 中的超链接?

ajax 响应未在单击的超链接的父 div 中呈现

c# webBrowser1 模拟点击超链接后,如何获取连接页面的信息(ajax ),需要不弹出窗口

wpf webBrowser 禁用超链接