您的位置:首页 > 移动开发 > IOS开发

IOS集成支付宝回调的坑

2015-08-24 16:21 302 查看
最近做个项目需要集成支付,当然选用支付宝,但是过程中发现了巨大的坑

支付完成后,在appdelegate中作回调,但是这个是不会执行

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSString *str1 = [url absoluteString];
NSLog(@"url %@",[str1 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
//urle
//跳转支付宝钱包进行支付,处理支付结果
//妈的这是个坑,下面这个函数根本就不会执行

//如果极简 SDK 不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给 SDK
if ([url.host isEqualToString:@"safepay"]) {
NSLog(@"url %@",url.host);
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"safepay = %@",resultDic);
}];
}

if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回 authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"platformapi = %@",resultDic);
}];
}
return YES;
}


回调操作在下面代码中

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut 这里回调? = %@",resultDic);
[self aLiPayCallBack:resultDic tradeNO:_product.orderId];
}];


特别注意一点:在appdelegate中的回调是不能删除的,删除后,调用支付宝客户端支付后不能回调。

支付宝Sdk版本:2.2.3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: