美文网首页
iOS微信系列,WKWebview加载H5进行微信支付返回浏览器

iOS微信系列,WKWebview加载H5进行微信支付返回浏览器

作者: 吴哥儿 | 来源:发表于2020-08-27 16:31 被阅读0次

    问题描述:项目内接入了第三方的web页面,此页面带有微信支付功能,跳转到微信后返回的是浏览器并非App。

    ps:博主解决过程坎坷的不行,遇到这个问题首先去微信的开发论坛看了下,结果看到微信开发人员说不支持,扎心惹。

    微信

    但是理论上应该是可以的,网上查阅了一下也有人说可以。

    思路:h5唤起微信支付应该也是通过一条链接传值给微信进行支付的,这条链接是否带有支付完返回的地址呢,答案是肯定的,记录一下。

    解决方案:

    1、在wkwebview的代理: - (void)webView:(WKWebView*)webViewdecidePolicyForNavigationAction:(WKNavigationAction*)navigationActiondecisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler;

    中拦截到唤起微信的链接,示例链接:

     https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx27154434905468de41757e925ea0f40000&package=1303961194&redirect_url=https%3A%2F%2Fms.czb365.com%2Fpay

    redirect_url 就是微信支付完成后/支付失败/取消支付 后返回的地址,我们新建一个URL Schemes,格式为:aaa.bbb.com (aaa我们自定义,bbb.com为该网页在微信平台所填写的域名,如果是第三方的web页面,可以通过唤起微信支付时,打印链接出来尝试使用),示例中的bbb.com是 ms.czb365.com.

    2、将示例链接转字典,再判断是否带有redirect_url ,(2.1)在redirect_url中拼接上我们的URL Schemes。得到 新链接https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx27154434905468de41757e925ea0f40000&package=1303961194&redirect_url=aaa.bbb.com://https%3A%2F%2Fms.czb365.com%2Fpay

    3、设置Referer。直接贴代码  

    NSString*urlStr;

    if ([[dic allKeys] containsObject:@"redirect_url"]) {

        urlStr = // 进行(2.1)

    NSMutableURLRequest *requestTest = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"2中得到的新链接"]];

      [request3setValue:@"aaa.bbb.com://" forHTTPHeaderField:@"Referer"];

       [self.webViewloadRequest:requestTest];

       decisionHandler(WKNavigationActionPolicyCancel);

    }

    else

    {

        urlStr = navigationAction.request.URL.absoluteString;

            decisionHandler(WKNavigationActionPolicyAllow);

    }

    4、 唤起微信:

       if ([webView.URL.absoluteString containsString:@"https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb"])

     {

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

     }

    基本步骤就是这样。如果出现参数错误联系商家,请仔细阅读。

    很少写文章,希望能帮助到你。

    也可以参考:https://www.cnblogs.com/Life-Record/p/8472319.html

    相关文章

      网友评论

          本文标题:iOS微信系列,WKWebview加载H5进行微信支付返回浏览器

          本文链接:https://www.haomeiwen.com/subject/dxncsktx.html