ios浏览器微信支付回调页面_iOS H5微信支付和微信支付完成之后跳转回APP
好的,我将详细描述iOS浏览器微信支付回调页面和iOS H5微信支付的流程。
1. 设置白名单
首先,我们需要在Info.plist文件中添加一个键值对,允许我们的APP跳转到微信支付页面。这个键值对是`LSApplicationQueriesSchemes`,它是一个数组,包含了我们APP可以跳转到的URL schemes的列表。
```xml
```
2. 在webView中设置支付回调
在我们的APP中,我们使用WKWebView来展示H5页面。我们需要在webView的配置中添加一个键值对,指定支付回调的URL。
```swiftlet config = WKWebViewConfiguration()
config.userContentController.addUserScript(WKUserScript(source: "window.location.href=' injectionTime:.documentEnd))
```
这里,我们使用`WKUserScript`来注入一个脚本,修改页面的URL跳转到我们的支付回调页面。
3. 微信支付流程
当用户点击支付按钮时,我们需要启动微信支付流程。我们可以使用以下代码来实现:
```swiftfunc payWithWeChat() {
let url = "weixin://wxpay/biz/mch_id=123456789&key=1234567890&info=example"
guard let webView = self.webView else { return }
webView.configuration.userContentController.addUserScript(WKUserScript(source: "window.location.href='(url)';", injectionTime:.documentEnd))
}
```
这里,我们使用`WKUserScript`来注入一个脚本,修改页面的URL跳转到微信支付页面。
4. 支付回调流程
当用户完成支付后,微信会将用户跳转回我们的APP。我们需要在webView中监听这个事件,并执行相应的逻辑。
```swiftfunc webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
guard let url = navigationAction.request.url else { return }
if url.host == "example.com/callback" {
// 支付回调逻辑 print("支付回调")
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
```
这里,我们使用`WKWebViewDelegate`的方法来监听webView的事件。当用户跳转回我们的APP时,我们会执行支付回调逻辑。
以上就是iOS浏览器微信支付回调页面和iOS H5微信支付的流程。