iOS客户端集成支付宝支付

本人只列出了核心流程,详细教程请参考支付宝开发文档https://docs.open.alipay.com/204/105295/

1、自动导入pod 'AlipaySDK-iOS'

2、在需要调用 AlipaySDK 的文件中,增加头文件引用

import 

3、点击项目名称,点击 Info 选项卡,在“URL Types”选项中,点击“+”,在“URL Schemes”中输入“你的schemes名称”,如下图

iOS客户端集成支付宝支付_第1张图片

4、配置返回 url 处理方法

//支付宝支付请求
//url为服务器返回的订单信息 
- (void)alipayRequest:(NSString *)url{    
    [[AlipaySDK defaultService] payOrder:url fromScheme:@"你的schemes名称" callback:^(NSDictionary *resultDic) {
        NSLog(@"%@",resultDic);
        NSString *str = resultDic[@"memo"];
        [SVProgressHUD showErrorWithStatus:str];
    }];
}

//处理支付回调
- (void)alipayHandleOpenUrl:(NSURL *)url{
    // 支付跳转支付宝钱包进行支付,处理支付结果(在app被杀模式下,通过这个方法获取支付结果)
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
        NSString *resultStatus = resultDic[@"resultStatus"];
        NSString *errStr = resultDic[@"memo"];
        NSLog(@"%@",errStr);
        switch (resultStatus.integerValue) {
            case 9000:// 成功
                NSLog(@"支付成功");
                break;
            case 6001:// 取消
                NSLog(@"用户中途取消");
                break;
            default:
                NSLog(@"支付失败");
                break;
        }
    }];
    
    // 授权跳转支付宝钱包进行支付,处理支付结果
    [[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
        NSLog(@"result = %@",resultDic);
        // 解析 auth code
        NSString *result = resultDic[@"result"];
        NSString *authCode = nil;
        if (result.length>0) {
            NSArray *resultArr = [result componentsSeparatedByString:@"&"];
            for (NSString *subResult in resultArr) {
                if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
                    authCode = [subResult substringFromIndex:10];
                    break;
                }
            }
        }
        NSLog(@"授权结果 authCode = %@", authCode?:@"");
    }];
}

5、在APAppDelegate.m中添加以下方法

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
    if ([url.host isEqualToString:@"safepay"]){
        [self alipayHandleOpenUrl:url];
        return YES;
    }
    return result;
}
    

 

你可能感兴趣的:(IOS,支付宝支付,iOS集成支付宝)