iOS H5微信支付总结

本文详细介绍了在iOS应用中集成H5微信支付的步骤,包括功能描述、操作流程和注意事项。首先, webView加载H5页面,点击支付后调用微信客户端进行支付,支付完成后返回APP。接着,设置微信项目,H5拦截支付请求并跳转到微信。通过修改redirect_url为自定义scheme,实现在支付完成后跳回APP。文章还提到了WKWebView和UIWebView的处理方式,并强调了URL Types配置和支付回调处理,确保支付成功或取消后能正确返回APP内部。
摘要由CSDN通过智能技术生成

功能描述

  • 1、webView加载H5页面
  • 2、点击微信支付,调起微信客户端支付
  • 3、支付完成,返回APP

操作流程

  • 1、调起微信的项目设置

选中‘TARGETS’一栏,在‘info’中的‘LSApplicationQueriesSchemes’添加‘weixin’,已添加过的可以忽略此步骤
  • 2、H5拦截微信支付请求,跳转微信

  • 2.1 WKWebView

// 实际使用时可以拦截weixin://wap/pay前缀的判断
#pragma mark - WKNavigationDelegate
//! WKWeView在每次加载请求前会调用此方法来确认是否进行请求跳转
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    
    // 先打印此方法拦截的所有请求
    // NSLog(@"\n ==== %@" ,navigationAction.request.URL.absoluteString);
    // decisionHandler(WKNavigationActionPolicyAllow);
    // return ;

    NSURLRequest *request        = navigationAction.request;
    NSString     *scheme         = [request.URL scheme];

    if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"]) {
        if ([scheme isEqualToString:@"weixin"]) {
            decisionHandler(WKNavigationActionPolicyCancel);
            BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:request.URL];
            if (canOpen) {
                [[UIApplication sharedApplication] openURL:request.URL];
            }
            return;
        }
        decisionHandler(WKNavigationActionPolicyAllow);
    }
    decisionHandler(WKNavigationActionPolicyAllow);
}
  • 2.2 UIWebView

NSString *reqUrl = request.URL.absoluteString;
    if ([reqUrl hasPrefix:@"weixin://"]) {
        if([[UIApplication sharedAp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值