ios 支付寶支付集成

客戶端集成支付寶、微信支付测蘑,所限還是需要后臺的配合洽故,后臺做一些邏輯數(shù)據(jù)處理,客戶端只需要進(jìn)行第三方集成刀诬、授權(quán)咽扇、調(diào)起支付接口就行了,其實(shí)從客戶端來講還是比較簡單的陕壹。先講講支付寶支付的集成质欲,后續(xù)再講微信支付。

1糠馆、注冊支付寶開發(fā)者賬號嘶伟、創(chuàng)建應(yīng)用 https://openhome.alipay.com/ (這一步就不細(xì)講了,使用第三方不備步驟)榨惠。

創(chuàng)建應(yīng)用后奋早,需要授權(quán)應(yīng)用支持的功能:支付、登錄等功能赠橙。

2耽装、從官網(wǎng)上下載SDK,并導(dǎo)入到工程中

下載SDK解壓后如下文件:


導(dǎo)入SDK文件.png

將上面文件拖入工程后期揪,下一步添加依賴庫:


添加依賴庫.png

3掉奄、寫個(gè)單例類,實(shí)現(xiàn)支付寶支付功能,方便APP中各個(gè)地方的調(diào)用

創(chuàng)建HCAlipayManager 類:

.h文件:
#import <AlipaySDK/AlipaySDK.h>

NS_ASSUME_NONNULL_BEGIN

@interface HCAlipayManager : NSObject

//生成支付寶單例類
+(id)sharePayManager;

//支付寶支付
//aParam 后端返回支付信息
-(void)handleOrderPayWithParams:(NSString *)aParam;

@end

NS_ASSUME_NONNULL_END

.m文件:

@implementation HCAlipayManager

+ (id)sharePayManager{
    static HCAlipayManager *asAlixPay = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        asAlixPay = [[HCAlipayManager alloc] init];
    });
    return asAlixPay;
}

/**
 支付寶支付

 @param aParam <#aParam description#>
 */
- (void)handleOrderPayWithParams:(NSString *)aParam{
    NSLog(@"aParm = %@",aParam);
    NSString *appScheme = @"alipayredpag";//appScheme是你在項(xiàng)目中添加的URL Type(別寫錯(cuò))
    NSString *orderString = aParam;//aParam[@"payInfo"];
    
    
    // NOTE: 調(diào)用支付結(jié)果開始支付
    [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
        NSLog(@"reslut = %@",resultDic);
        int statusCode = [resultDic[@"resultStatus"]  intValue];
        
        if (statusCode == 9000){
            //訂單支付
            [[HCToast shareInstance] showToast:@"支付成功"];
            [[NSNotificationCenter defaultCenter] postNotificationName:@"alipay_paySuccess" object:nil];
            
        }else{
            //交易失敗
            // [[NSNotificationCenter defaultCenter] postNotificationName:@"PAY_STATUS" object:@"0"];
            [[HCToast shareInstance] showToast:@"支付異常"];
        }
    }];
}
@end

4姓建、支付成功后跳轉(zhuǎn)

在AppDelegate.m中寫攔截跳轉(zhuǎn)協(xié)議:

#pragma mark - openURL Delegate
///ios9.0之后實(shí)現(xiàn)該方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:
    //支付寶支付跳轉(zhuǎn)
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉(zhuǎn)支付寶錢包進(jìn)行支付诞仓,處理支付結(jié)果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"支付寶支付跳轉(zhuǎn) result = %@",resultDic);
            int statusCode = [resultDic[@"resultStatus"]  intValue];
            
            if (statusCode == 9000){
                //訂單支付
                [[HCToast shareInstance] showToast:@"支付成功"];
                [[NSNotificationCenter defaultCenter] postNotificationName:@"alipay_paySuccess" object:nil];
                
            }else{
                //交易失敗
                // [[NSNotificationCenter defaultCenter] postNotificationName:@"PAY_STATUS" object:@"0"];
                [[HCToast shareInstance] showToast:@"支付異常"];
            }
        }];
    }
    
    
    return YES;
}

///ios9.0之前實(shí)現(xiàn)該方法
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    
    //支付寶支付跳轉(zhuǎn)
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉(zhuǎn)支付寶錢包進(jìn)行支付,處理支付結(jié)果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"支付寶支付跳轉(zhuǎn) result = %@",resultDic);
            int statusCode = [resultDic[@"resultStatus"]  intValue];
            
            if (statusCode == 9000){
                //訂單支付
                [[HCToast shareInstance] showToast:@"支付成功"];
                [[NSNotificationCenter defaultCenter] postNotificationName:@"alipay_paySuccess" object:nil];
                
            }else{
                //交易失敗
                // [[NSNotificationCenter defaultCenter] postNotificationName:@"PAY_STATUS" object:@"0"];
                [[HCToast shareInstance] showToast:@"支付異常"];
            }
        }];
    }
    
    return YES;
}

///ios9.0之前實(shí)現(xiàn)該方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

    //支付寶支付跳轉(zhuǎn)
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉(zhuǎn)支付寶錢包進(jìn)行支付速兔,處理支付結(jié)果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"支付寶支付跳轉(zhuǎn) result = %@",resultDic);
            int statusCode = [resultDic[@"resultStatus"]  intValue];
            
            if (statusCode == 9000){
                //訂單支付
                [[HCToast shareInstance] showToast:@"支付成功"];
                [[NSNotificationCenter defaultCenter] postNotificationName:@"alipay_paySuccess" object:nil];
                
            }else{
                //交易失敗
                // [[NSNotificationCenter defaultCenter] postNotificationName:@"PAY_STATUS" object:@"0"];
                [[HCToast shareInstance] showToast:@"支付異常"];
            }
        }];
    }
    
    return YES;
}

5墅拭、在需要支付的地方,調(diào)用支付方法

///調(diào)起支付寶支付
- (void)doAlipayWithParams:(NSString *)params{
    NSLog(@"支付寶支付信息:%@",params);
    ///沒錯(cuò)涣狗,只需要調(diào)用單例方法 一句話搞定谍婉。但是需要注意,params:一般是后臺給你的支付所需的信息镀钓,拼接成字符串傳給支付寶就可以了穗熬。
    [[HCAlipayManager sharePayManager] handleOrderPayWithParams:params];
}

結(jié)束了,感謝閱讀~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丁溅,一起剝皮案震驚了整個(gè)濱河市唤蔗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窟赏,老刑警劉巖妓柜,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涯穷,居然都是意外死亡领虹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門求豫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诉稍,你說我怎么就攤上這事蝠嘉。” “怎么了杯巨?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵蚤告,是天一觀的道長。 經(jīng)常有香客問我服爷,道長杜恰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任仍源,我火速辦了婚禮心褐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘笼踩。我一直安慰自己逗爹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布嚎于。 她就那樣靜靜地躺著掘而,像睡著了一般挟冠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袍睡,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天知染,我揣著相機(jī)與錄音,去河邊找鬼斑胜。 笑死控淡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伪窖。 我是一名探鬼主播逸寓,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼覆山!你這毒婦竟也來了竹伸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤簇宽,失蹤者是張志新(化名)和其女友劉穎勋篓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魏割,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡譬嚣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钞它。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拜银。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖遭垛,靈堂內(nèi)的尸體忽然破棺而出尼桶,到底是詐尸還是另有隱情,我是刑警寧澤锯仪,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布泵督,位于F島的核電站,受9級特大地震影響庶喜,放射性物質(zhì)發(fā)生泄漏小腊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一久窟、第九天 我趴在偏房一處隱蔽的房頂上張望秩冈。 院中可真熱鬧,春花似錦瘸羡、人聲如沸漩仙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽队他。三九已至卷仑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麸折,已是汗流浹背锡凝。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垢啼,地道東北人窜锯。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像芭析,于是被迫代替她去往敵國和親锚扎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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

  • 1馁启、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,162評論 25 707
  • 今天驾孔,下雨了。不能出去玩兒惯疙,因?yàn)橄掠臧职诌€乒乓球去啦翠勉,每天早上他都去打球。媽媽做家務(wù)霉颠,我?guī)蛬寢尟B完衣服后对碌,寫了生字...
    劉彥博閱讀 96評論 0 0
  • 前言:學(xué)歷可以證明一個(gè)人在一段時(shí)間內(nèi)完成了一些學(xué)習(xí)任務(wù)。 完成之后有沒有可能利用起來蒿偎,是另一回事朽们。 學(xué)以致用才不會...
    阿嘉麗閱讀 417評論 8 6
  • 從前有個(gè)人叫李浩,與老母親相伴生活诉位。他每天上山砍柴為生华坦,年輕力盛,日子倒也過得豐盈有余不从,時(shí)常接濟(jì)往來的貧困之人。...
    錢小閑閱讀 1,620評論 0 0