前段時間把微信支付小小整理寫了一下熟菲,時隔至今,看了一遍目錄朴恳,微信和支付寶支付不是同時出現(xiàn)的么抄罕,怎么能只寫一個(強迫癥害死貓)
下面請開始我的表演
建議先看看這個官方的集成文檔:App支付iOS集成流程
1、逛逛官網(wǎng)介紹和一些注意事項于颖,下載demo和sdk呆贿,按照集成文檔放在自己項目里,該引入的依賴庫不要遺漏森渐,認真添加做入,有些工具類文件也可以從demo里直接拿過來用(模擬生成支付用的東西 真實的不需要 在后臺處理),我最后整到項目里的是這些文件同衣,請您過目:
2竟块、開始編寫支付代碼,這之前最好是要弄明白后臺要做的事情 客戶端要做的事情耐齐,溝通好狠重要浪秘,接著看代碼:
(1)引入頭文件:
#import#import "Order.h"
#import "RSADataSigner.h"
(2)調(diào)用后臺獲取支付寶支付的信息,這些東西一定在后臺做埠况,為了所謂的安全考慮耸携,我們很樂意讓后臺來實現(xiàn)這個過程,
// 選中商品調(diào)用支付寶極簡支付
- (void)doAlipay:(NSDictionary *)response {
// 后臺返回的字符串
NSString *signedString = response[@"data"];?
if (signedString != nil) {
// 這個在Xcode里面設(shè)置一下添加scheme:MeiFaAlipay
NSString *appScheme = @"MeiFaAlipay";
// 開始支付
[[AlipaySDK defaultService] payOrder:signedString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
}];
}
}
(3)以上是主要實現(xiàn)代碼辕翰,支付成功的回掉老是不走违帆,不知道為啥,支付結(jié)果我們UI設(shè)計了專門的支付成功頁面金蜀,所以要拿到刷后,我是在appdelegate.m中獲取到支付成功或者時報發(fā)了一個通知來處理的的畴,參考:
#import <AlipaySDK/AlipaySDK.h>
//9.0后的方法里獲取支付結(jié)果回掉事件?
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options {
if ([url.host isEqualToString:@"safepay"]) {
//跳轉(zhuǎn)支付寶錢包進行支付,處理支付結(jié)果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"1尝胆、支付寶進行支付丧裁,處理支付結(jié)果:%@", resultDic);
if ([resultDic[@"resultStatus"] isEqualToString:@"9000"]) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"AliPaySucssed" object:@"Y"];
}else {
[[NSNotificationCenter defaultCenter] postNotificationName:@"AliPayFaild" object:@"N"];
}
}];
return YES;
}
}