iOS 手機(jī)網(wǎng)站支付轉(zhuǎn)Native支付(H5支付頁面調(diào)起支付寶客戶端(app))

一:導(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;

}





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容