美文网首页
支付宝集成之回调,

支付宝集成之回调,

作者: 大墙66370 | 来源:发表于2016-06-07 11:01 被阅读1543次

在支付宝回调是分两种情况
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;

}

相关文章

网友评论

      本文标题:支付宝集成之回调,

      本文链接:https://www.haomeiwen.com/subject/tduddttx.html