WKWebview调用支付宝微信等支付

2019-04-16  本文已影响0人  FM_0138

参考文章: https://www.jianshu.com/p/157b8ae457ef

实现WKwebview的代理,然后在此代理从填写这个

#pragma mark - WKNavigationDelegate

/** 在发送请求之前,决定是否跳转 */

#pragma mark - WKNavigationDelegate

- (void)webView:(WKWebView*)webView decidePolicyForNavigationAction:(WKNavigationAction*)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler {

    NSURL*hosturl = navigationAction.request.URL;

        NSString*hostname = navigationAction.request.URL.host.lowercaseString;

    NSLog(@"hosturl = %@ \n hostname = %@ \n ",hosturl, hostname);

    NSString*str = [hosturlabsoluteString];

    if ([hosturl.absoluteString containsString:@"alipay://alipayclient/"] || [hosturl.absoluteString containsString:@"weixin://"]){

        NSString *nows = [NSString stringWithFormat:@"%@", hosturl];

        NSString *ho = [nows stringByReplacingOccurrencesOfString:@"alipays" withString:@"qpclient"];

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ho]];

    }

    decisionHandler(WKNavigationActionPolicyAllow);

}

支付结束后无法跳回APP。我们都知道iOS内的应用间跳转,基本都是通过scheme的方式,跳出去如此,要返回也是如此。

先看下支付宝支付:

捕获支付宝web支付跳转链接如 alipay://alipayclient/?{"requestType":"SafePay","fromAppUrlScheme":"alipays","dataString":"h5_route_token=\"shierRZ25\"&is_h5_route=\"true\""}

发现其中只要将fromAppUrlScheme改为APP内配置的scheme,即可正确跳转回应用。

再看一下微信,微信的h5支付回调应该是服务端提供的一个h5地址,因此支付完成后默认是跳转到了Safari,在APP内进行的支付,我们要换掉这个回调,变成我们自己的。

上一篇 下一篇

猜你喜欢

热点阅读