1. 程式人生 > >iOS開發中支付寶支付的整合(其實很簡單)

iOS開發中支付寶支付的整合(其實很簡單)

最近專案中要使用支付寶支付,記得之前整合支付寶支付是挺麻煩的一件事,可這次整合支付寶支付卻順利、方便了許多,感謝支付寶開放平臺的技術人員將整合文件寫的越來越方便我們這些開發人員使用。先附上支付寶支付整合的官方文件https://docs.open.alipay.com/204/105295/

大概的整合流程就是1.下載官方demo  2.將AlipaySDK.bundle、AlipaySDK.framework兩個框架匯入到專案中並新增支付寶SDK依賴的系統庫。 3.在AppDelegate中拷貝官方程式碼

// 僅支援iOS9以上系統

- (BOOL)application:(UIApplication

*)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options

{

//6.3的新的API呼叫,是為了相容國外平臺(例如:新版facebookSDK,VK)的呼叫[如果用6.2api呼叫會沒有回撥],對國內平臺沒有影響

BOOL result = [[UMSocialManagerdefaultManager handleOpenURL:url options:options];

if (!result) {

// 其他如支付等SDK的回撥

if

([url.hostisEqualToString:@"safepay"]) {

//跳轉支付寶錢包進行支付,處理支付結果

            [[AlipaySDKdefaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

            }];

        }

    }

return result;

}

- (BOOL)application:(UIApplication

*)application handleOpenURL:(NSURL *)url

{

BOOL result = [[UMSocialManagerdefaultManager] handleOpenURL:url];

if (!result) {

// 其他如支付等SDK的回撥

if ([url.hostisEqualToString:@"safepay"]) {

//跳轉支付寶錢包進行支付,處理支付結果

            [[AlipaySDKdefaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

            }];

        }

    }

return result;

}

- (BOOL)application:(UIApplication *)application

            openURL:(NSURL *)url

  sourceApplication:(NSString *)sourceApplication

         annotation:(id)annotation {

if ([url.hostisEqualToString:@"safepay"]) {

//跳轉支付寶錢包進行支付,處理支付結果

        [[AlipaySDKdefaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

        }];

    }

returnYES;

}

4.在需要使用支付寶支付的控制器中匯入標頭檔案
# import <AlipaySDK/AlipaySDK.h>

5.在URL Types的URL Schemes中填寫自己定義的具有唯一標識度的字串,這是為了在支付寶App支付後能成功跳轉回本App中,這個URL Schemes要和支付時使用的支付程式碼中schemeStr引數一致。

6.進行支付

//應用註冊scheme,AliSDKDemo-Info.plist定義URL types

NSString *appScheme = @"唯一識別符號";

NSString * orderString = responseObject[@"data"][@"niu_index_response"];

// NOTE: 呼叫支付結果開始支付

            [[AlipaySDKdefaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

NSLog(@"reslut = %@",resultDic);

NSString * memo = resultDic[@"memo"];

NSLog(@"===memo:%@", memo);

if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {

                    [SVProgressHUDshowSuccessWithStatus:@"支付成功"];

                }else{

                    [SVProgressHUDshowErrorWithStatus:memo];

                }

            }];

支付方法:

/**

 *  支付介面

 *

 *  @param orderStr       訂單資訊

 *  @param schemeStr      呼叫支付的app註冊在info.plist中的scheme

 *  @param completionBlock 支付結果回撥Block,用於wap支付結果回撥(非跳轉錢包支付)

 */

- (void)payOrder:(NSString *)orderStr

      fromScheme:(NSString *)schemeStr

        callback:(CompletionBlock)completionBlock;

訂單資訊是通過和後臺互動,我們自己的後臺返回給我們的訂單資訊。

支付寶支付就這樣集成了,個人感覺簡單了許多,希望幫助到尋求幫助的朋友們!