美文网首页iOS开发程序员
iOS UIWebView web调支付宝客户端进行支付

iOS UIWebView web调支付宝客户端进行支付

作者: 风规自远 | 来源:发表于2018-10-12 11:30 被阅读14次

    #import<AlipaySDK/AlipaySDK.h>// 前面要集成支付宝SDK,

    AlipaySDK:

    /**

     *  从h5链接中获取订单串并支付接口(自版本15.4.0起,推荐使用该接口)

     *

     *  @param urlStr    拦截的 url string

     *

     *  @return YES为成功获取订单信息并发起支付流程;NO为无法获取订单信息,输入url是普通url

     */

    - (BOOL)payInterceptorWithUrl:(NSString*)urlStr

                       fromScheme:(NSString*)schemeStr

                         callback:(CompletionBlock)completionBlock;

    代码:

    /**

     * web 请求

     */

    - (void)requestUrl:(NSString*)url {

        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];

    }

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

        OMGLog(@"拦截url==%@", [request.URL absoluteString]);

        __weak PayViewController * wself = self;

        BOOL isIntercepted = [[AlipaySDK defaultService] payInterceptorWithUrl:[request.URL absoluteString] fromScheme:@"XX" callback:^(NSDictionary *result) {//XX表示你自己的APP的标志在scheme设置下

            // 处理支付结果

            OMGLog(@"处理支付结果==%@", result);

            // isProcessUrlPay 代表 支付宝已经处理该URL

            if([result[@"isProcessUrlPay"]boolValue]) {

                // returnUrl 代表 第三方App需要跳转的成功页URL

                NSString* urlStr = result[@"returnUrl"];

                OMGLog(@"%@",urlStr);

                [wselfrequestUrl:urlStr];

            }

        }];

        if(isIntercepted) {

            returnNO;

        }

        return YES;

    }

    相关文章

      网友评论

        本文标题:iOS UIWebView web调支付宝客户端进行支付

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