【发布时间】: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 中没有运气。如果是,请指导我。谢谢
标签: ios swift swift3 payment upi