步骤
- 当客户端发起支付
- 你的后台返回给你一个URL
- 你通过WKWebView加载这个URL
- 加载成功后就支付
- 支付完成后调用这个方法进行监听
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
// 这句不加会报错哟
decisionHandler(WKNavigationActionPolicyAllow);
// 这个过程就是在监听
// 打印支付宝服务端与你们后台进行着什么看不见的交易
MapleLog(@"navigationAction.request.URL %@", navigationAction.request.URL);
// 你要问你后台大哥你要监听的URL是什么(就是支付成功或支付失败返回的URL)
NSString *string = [NSString stringWithFormat:@"%@", navigationAction.request.URL];
// string是你拦截的URL,@"yhtqkl://pay_ok"是我们后台大哥给我的URL
if ([string hasPrefix:@"yhtqkl://pay_ok"]) {
[SVProgressHUD showSuccessWithStatus:@"支付成功!"];
[self.navigationController popToRootViewControllerAnimated:YES];
}
if ([string hasPrefix:@"yhtqkl://pay_error"]) {
[self.navigationController popViewControllerAnimated:YES];
}
}