iOS支付宝集成

第一步:https://docs.open.alipay.com/54/104509来到这下载支付宝的示例Demo

iOS支付宝集成_第1张图片
image.png

第二步:打开示例Demo找到这几个文件拷贝放到桌面
iOS支付宝集成_第2张图片
Snip20180315_4.png

第三步:建一个Demo
3.1先把刚才拷贝出来的文件添加进工程
AlipaySDK.bundle
AlipaySDK.framework
3.2导入依赖库
iOS支付宝集成_第3张图片
Snip20180315_5.png

3.3把俩个.a文件加入库中
iOS支付宝集成_第4张图片
Snip20180315_6.png

3.4把openssl和Utils两个文件夹加入到项目中
这里注意要这样加入这两个文件
1025776-042b20e49de65d9b.gif

iOS支付宝集成_第5张图片
Snip20180315_7.png

否则容易报下面这个错误
iOS支付宝集成_第6张图片
Snip20180315_8.png

如果还是报这个错,那就这样


iOS支付宝集成_第7张图片
Snip20180315_9.png

3.4把下载的示例代码的几个文件拖入到项目中


iOS支付宝集成_第8张图片
Snip20180315_10.png

3.5.别忘记了把在info.plist中加上这个


Snip20180315_11.png

总于到代码了
1.在AppDelegate.m中导入头文件#import 添加如下代码

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    if ([url.host isEqualToString:@"safepay"]) {
        // 支付跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"result = %@",resultDic);
        }];
        
        // 授权跳转支付宝钱包进行支付,处理支付结果
        [[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?:@"");
        }];
    }
    return YES;
}

// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
    if ([url.host isEqualToString:@"safepay"]) {
        // 支付跳转支付宝钱包进行支付,处理支付结果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"result = %@",resultDic);
        }];
        
        // 授权跳转支付宝钱包进行支付,处理支付结果
        [[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?:@"");
        }];
    }
    return YES;
}

在需要支付的地方
导入头文件

import

这里的aliPay 就是调起支付宝支付

- (void)aliPay
{
        NSString *appScheme = @"app.haha.2018.3.15";

    // NOTE: 调用支付结果开始支付
        [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
            NSLog(@"reslut = %@",resultDic);
        }];
}

特别注意⚠️这里的appScheme要设置为一样,因为支付后,要回到原来的应用程序,必须要对应一样


iOS支付宝集成_第9张图片
Snip20180315_17.png
结果如下
iOS支付宝集成_第10张图片
Snip20180315_15.png

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