一:導(dǎo)入sdk流程如下: 1.下載sdk,把iOS包中的壓縮文件中以下文件拷貝到項目文件夾下,并導(dǎo)入到項目工程中。
AlipaySDK.bundle
AlipaySDK.framework
2.在Build Phases選項卡的Link Binary With Libraries中,增加以下依賴:
注意: 如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd; 如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib。
二:使用說明: 1.在需要調(diào)用AlipaySDK的文件中,增加頭文件引用。
#import <AlipaySDK>
2.調(diào)用接口
[[AlipaySDK defaultService]fetchOrderInfoFromH5PayUrl:url]
3.實現(xiàn)UIWebViewDelegate協(xié)議,攔截H5的URL(如果使用WKUIDelegate協(xié)議,請點擊查看)
如果返回的resultCode為9000,接入方可以提示用戶支付成功;返回結(jié)果不是9000的情況,無需做任何處理。如果returnUrl不為空,建議接入方跳轉(zhuǎn)到該returnUrl。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString* orderInfo = [[AlipaySDK defaultService]fetchOrderInfoFromH5PayUrl:[request.URL absoluteString]];
if (orderInfo.length > 0) {
// 調(diào)用支付接口進(jìn)行支付
[[AlipaySDK defaultService]payUrlOrder:orderInfo fromScheme:@"alisdkdemo" callback:^(NSDictionary* result) {
// 處理返回結(jié)果
NSString* resultCode = result[@"resultCode"];
//建議操作: 根據(jù)resultCode做處理
// returnUrl 代表 第三方App需要跳轉(zhuǎn)的成功頁URL
NSString* returnUrl = result[@"returnUrl"];
//建議操作: 打開returnUrl
}];
return NO;
}
return YES;
}
4.支付寶客戶端返回url處理方法,在AppDelegate.m文件中,增加頭文件引用
#import <AlipaySDK>
在 @implementation? AppDelegate 中增加以下代碼
//如果極簡開發(fā)包不可用,會跳轉(zhuǎn)支付寶錢包進(jìn)行支付,需要將支付寶錢包的支付結(jié)果回傳給開發(fā)包
if ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳轉(zhuǎn)支付寶客戶端支付的過程中,商戶app在后臺很可能被系統(tǒng)kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調(diào)結(jié)果進(jìn)行處理,就是在這個方法里面處理跟callback一樣的邏輯】
NSLog(@"result = %@",resultDic);
}];
}
if ([url.host isEqualToString:@"platformapi"]){//支付寶錢包快登授權(quán)返回authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳轉(zhuǎn)支付寶客戶端支付的過程中,商戶app在后臺很可能被系統(tǒng)kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調(diào)結(jié)果進(jìn)行處理,就是在這個方法里面處理跟callback一樣的邏輯】
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}