支付寶集成之回調,

在支付寶回調是分兩種情況
1手機沒有裝客戶端。
如果你看過支付寶的demo你會發現有這樣一個方法,程序運行到這行代碼會跳轉到網頁支付寶。在支付過之后會返回自己的客戶端在callback這個block里面回調

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme  callback:^(NSDictionary *responseObj)  
    NSLog(@"reslut======= =  %@",responseObj);
        }];

2手機裝了客戶端
程序還會運行到payOrder這個方法,就會跳轉到支付寶客戶端,支付完成,返回我們自己的程序,回調不是直接回調callback

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme  callback:^(NSDictionary *responseObj) {
 NSLog(@"reslut======= = %@",responseObj);
        }]; 

而是會運行下面寫的appDelegate的一個系統回調方法。這里面有支付寶SDK的方法,緊接著會被運行。這個支付寶SDK的方法一運行可能不會回調standbyCallback這個block
而是回調上面說的那個方法的callback。
原因是,//【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,callback都失效自然callback不會回調。難道就不回調了?那standbyCallback是吃干飯的?所以當callback失效standbyCallback才回調。

 //ios 9
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
//如果極簡開發包不可用,會跳轉支付寶錢包進行支付,需要將支付寶錢包的支付結果回傳給開發包
if ([url.host isEqualToString:@"safepay"]) {
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
        //【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
        NSLog(@"result = %@",resultDic);
    }];
} 
if ([url.host isEqualToString:@"platformapi"]){//支付寶錢包快登授權返回authCode
    [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
        //【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
        NSLog(@"result = %@",resultDic);
    }];
}
return YES;
}
//ios8
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
//如果極簡開發包不可用,會跳轉支付寶錢包進行支付,需要將支付寶錢包的支付結果回傳給開發包
if ([url.host isEqualToString:@"safepay"]) {
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
        //【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
        NSLog(@"result = %@",resultDic);
    }];
}
if ([url.host isEqualToString:@"platformapi"]){//支付寶錢包快登授權返回authCode
    [[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
        //【由于在跳轉支付寶客戶端支付的過程中,商戶app在后臺很可能被系統kill了,所以pay接口的callback就會失效,請商戶對standbyCallback返回的回調結果進行處理,就是在這個方法里面處理跟callback一樣的邏輯】
        NSLog(@"result = %@",resultDic);
    }];
}
return YES;

}

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

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,598評論 25 708
  • 實現支付寶支付的準備工作: 1.向支付寶簽約,成為支付寶的商戶 簽約完成后,支付寶會提供一些必要的數據給我們 商戶...
    Anson楊春安閱讀 8,265評論 0 6
  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    請輸入賬號名閱讀 6,318評論 3 22
  • 準備工作: 需要公司的營業執照,稅務信息,等老板的身份證信息等,我記得,用這些材料,去支付寶注冊一個商家賬戶(審核...
    Hevin_Chen閱讀 6,824評論 0 9
  • 一說起書,我就有許多的話要說。 書,是一種的飲料,暢快,豪爽,那是清甜的果汁;書,是一種飲料,羞...
    動物非物亦有情閱讀 470評論 2 2