使用 URL 方案的 Google Pay UPI 集成 - iOS
Posted
技术标签:
【中文标题】使用 URL 方案的 Google Pay UPI 集成 - iOS【英文标题】:Google Pay UPI integration using URL Schemes - iOS 【发布时间】:2020-03-23 18:54:31 【问题描述】:根据链接 https://www.npci.org.in/sites/all/themes/npcl/images/PDF/UPI_Linking_Specs_ver_1.5.1.pdf 上提供的 NPCI 文档提供的指南,我正在开发一个使用 UPI 接受付款的应用程序,我能够按照以下方式在 android 中复制 Intent 基本行为链接 https://developers.google.com/pay/india/api/android/in-app-payments 上提供了 Google Pay 的文档,但如果 iPhone 中安装了多个支持 UPI 的应用程序,我无法在 ios 中使用 URL 方案实现相同的行为。
例如如果我在 iPhone 中使用下面的代码并且只安装了 Google Pay,那么下面的代码就可以正常工作
let urlString = "upi://pay?pa=test@dcb&cu=INR&mc=0000&appName=TEST&tn=To&am=1.0&pn=TEST&tr=TEST-1574159602900"
guard let url = URL.init(string: textView.text) else
return
UIApplication.shared.openURL(url)
如果安装了多个支持 UPI URL 方案 即upi://
【问题讨论】:
您是否碰巧找到了解决方案? 【参考方案1】:您可以使用应用程序本机 Web 视图而不是打开浏览器(在应用程序之外) 使用网络查看create payment request。
支持的方法:“https://tez.google.com/pay”
【讨论】:
能否提供详细的示例代码或类文件来实现。这会很有帮助。【参考方案2】:根据this article,Google Pay 在印度和世界其他地区之间存在很大差异,因此如果您想在未安装 Google Pay 的情况下处理来自印度和世界其他地区的请求(或者如果在打开时有其他问题upi URL 方案)您需要确定从哪里开始付款。 对于来自 AtulParmar 的印度解决方案应该可以工作,而对于其他地方,请尝试使用上述文章中的指南。本机 Web 视图可能会有所帮助,但不一定会有所帮助。 祝你好运!
【讨论】:
【参考方案3】:如果是iOS
,您需要在调用之前在deeplink
中添加UPI PSP
的前缀。
例如 tez://upi/pay?pa=exeex.payu@indus&pn=exexe%20E-Retail%20Private%20Limited&tr=11426866303&tid=NYK-176044-6770938&am=7.00&cu=INR&tn=UPI%20Transaction%20for%20NYK-176044-6770938
【讨论】:
前缀 tez 工作得很好,你知道其他应用程序的前缀,还是一些参考文档,我可以在其中查找这些前缀我需要 phonepe、amazon pay 等前缀以上是关于使用 URL 方案的 Google Pay UPI 集成 - iOS的主要内容,如果未能解决你的问题,请参考以下文章
Google Pay UPI 集成在 Android 中不起作用
在 Flutter 的底部工作表中集成 Google Pay
使用 UPI(具体为 GooglePay)验证付款是不是实际完成