步骤 1 下载SDK
docs.open.alipay.com/54/104509
步骤 2 启动IDE(如Xcode),把iOS包中的压缩文件中以下文件拷贝到项目文件夹下,并导入到项目工程中。
AlipaySDK.bundle
AlipaySDK.framework
在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:
其中,需要注意的是:
如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;
如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib(如下图)。
步骤 3 在需要调用AlipaySDK的文件中,增加头文件引用。
import <AlipaySDK/AlipaySDK.h>
NSString *appScheme = @"";
[[AlipaySDK defaultService] payOrder:@"" fromScheme:appScheme callback:^(NSDictionary *resultDic) {
int code = [[resultDic objectForKey:@"resultStatus"] intValue];
if(code == 9000){
NSLog(@"支付成功");
}else if (code == 8000){
NSLog(@"正在处理中");
}else if (code == 4000){
NSLog(@"订单支付失败");
}else if (code == 6001){
NSLog(@"用户中途取消");
}else if (code == 6002){
NSLog(@"网络连接出错");
}
}];
说明:payOrder:参数 需要在后台获取,因为获取私钥并将商户信息签名,外部商户的加签过程请务必放在服务端,防止公私钥数据泄露
步骤 4 配置支付宝客户端返回url处理方法。
import <AlipaySDK/AlipaySDK.h>
- (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);
}];
}
return YES;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
步骤 5 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。
URL type