支付寶集成之回調(diào),

在支付寶回調(diào)是分兩種情況
1手機(jī)沒有裝客戶端。
如果你看過支付寶的demo你會(huì)發(fā)現(xiàn)有這樣一個(gè)方法,程序運(yùn)行到這行代碼會(huì)跳轉(zhuǎn)到網(wǎng)頁支付寶。在支付過之后會(huì)返回自己的客戶端在callback這個(gè)block里面回調(diào)

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

2手機(jī)裝了客戶端
程序還會(huì)運(yùn)行到payOrder這個(gè)方法,就會(huì)跳轉(zhuǎn)到支付寶客戶端,支付完成,返回我們自己的程序,回調(diào)不是直接回調(diào)callback

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

而是會(huì)運(yùn)行下面寫的appDelegate的一個(gè)系統(tǒng)回調(diào)方法。這里面有支付寶SDK的方法,緊接著會(huì)被運(yùn)行。這個(gè)支付寶SDK的方法一運(yùn)行可能不會(huì)回調(diào)standbyCallback這個(gè)block
而是回調(diào)上面說的那個(gè)方法的callback。
原因是,//【由于在跳轉(zhuǎn)支付寶客戶端支付的過程中,商戶app在后臺(tái)很可能被系統(tǒng)kill了,所以pay接口的callback就會(huì)失效,callback都失效自然callback不會(huì)回調(diào)。難道就不回調(diào)了?那standbyCallback是吃干飯的?所以當(dāng)callback失效standbyCallback才回調(diào)。

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

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評(píng)論 25 709
  • 實(shí)現(xiàn)支付寶支付的準(zhǔn)備工作: 1.向支付寶簽約,成為支付寶的商戶 簽約完成后,支付寶會(huì)提供一些必要的數(shù)據(jù)給我們 商戶...
    Anson楊春安閱讀 8,619評(píng)論 0 6
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購)。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    請(qǐng)輸入賬號(hào)名閱讀 6,474評(píng)論 3 22
  • 準(zhǔn)備工作: 需要公司的營業(yè)執(zhí)照,稅務(wù)信息,等老板的身份證信息等,我記得,用這些材料,去支付寶注冊(cè)一個(gè)商家賬戶(審核...
    Hevin_Chen閱讀 6,878評(píng)論 0 9
  • 一說起書,我就有許多的話要說。 書,是一種的飲料,暢快,豪爽,那是清甜的果汁;書,是一種飲料,羞...
    動(dòng)物非物亦有情閱讀 499評(píng)論 2 2

友情鏈接更多精彩內(nèi)容