iOS关于UIWeb 与WKWeb 第三方链接调用支付宝失败的解决方法

在工作项目中会遇到接入第三方的网页产品支付的链接(比如这次遇到的平安保险),很多情况下是不支持SDK的
需求案例:后台或者产品大大给一个H5的产品页面 支付时调起支付宝

如何在app 内部用web调起支付宝客户端呢

UIWebView

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    NSString* reqUrl = request.URL.absoluteString;
    if ([reqUrl hasPrefix:@"alipays://"] || [reqUrl hasPrefix:@"alipay://"] || [reqUrl hasPrefix:@"https://mapi.alipay.com"] ) {
        BOOL bSucc = [[UIApplication sharedApplication]openURL:request.URL];
        
        return bSucc;
        //bSucc是否成功调起支付宝
    }
    return YES;
}

WKWebView

- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
    
    NSString* reqUrl = webView.URL.absoluteString;
    if ([reqUrl hasPrefix:@"alipays://"] || [reqUrl hasPrefix:@"alipay://"] || [reqUrl hasPrefix:@"https://mapi.alipay.com"] ) {
        BOOL bSucc = [[UIApplication sharedApplication]openURL: webView.URL];
        //bSucc是否成功调起支付宝
    }
}

这种openURL打开支付宝支付的方式 跳转会通过Safari去跳转


IMG_3144.PNG

并且首先是得对方生成的URL连接中包含生成订单的支付信息 这样才可以直接支付 如果只给你了参数 那你只能按照支付宝的规定去拼再调 也可以用SDK调了(应该是包含加密过的私钥的 一般不会给 所以不用想那么多)


参考文章
iOS 关于web调起支付宝问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了。 下载 首先,你要想找到这个SDK,都得费点...
    胖花花阅读 95,495评论 60 240
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,982评论 25 708
  • 自己总结的微信支付宝支付流程和注意点: 准备工作: 需要公司的营业执照,税务信息,等老板的身份证信息等,我记得,用...
    Www刘阅读 18,581评论 2 50
  • 看到这篇有关个人极简主义历程的文章,觉得很好,特此翻译过来,分享给大家。 (原文题目:When too much ...
    铁哥allen阅读 1,512评论 0 4
  • 每当心情沉重的时候 我总想放下一切 让心去远行 在大漠孤烟里 在小桥流水里 在乡间小路上 在旅途的颠簸上 忘掉一切...
    钏雾草生阅读 328评论 0 0