支付宝集成之回调,

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

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 实现支付宝支付的准备工作: 1.向支付宝签约,成为支付宝的商户 签约完成后,支付宝会提供一些必要的数据给我们 商户...
    Anson杨春安阅读 12,651评论 0 6
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 11,439评论 3 22
  • 准备工作: 需要公司的营业执照,税务信息,等老板的身份证信息等,我记得,用这些材料,去支付宝注册一个商家账户(审核...
    Hevin_Chen阅读 11,734评论 0 9
  • 一说起书,我就有许多的话要说。 书,是一种的饮料,畅快,豪爽,那是清甜的果汁;书,是一种饮料,羞...
    动物非物亦有情阅读 3,269评论 2 2

友情链接更多精彩内容