IOS 调用支付宝收不到支付回调

前言:由于支付宝全面升级,所以相应的从老版本升级到新版本,结果收不到支付回调。

在这里还给自己挖了个坑,因为由于Xcode8的原因,我将系统日志屏蔽掉了,然后导致NSLog打印不出来(因为是复制demo过来的),一直以为收不到支付回调。


原因:发现原来支付宝升级后

//调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
     MyLog(@"reslut = %@",resultDic);
}];
这个方法不再处理支付回调,而是转到了AppDelegate

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
//9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options;

在这边进行处理支付回调。


代码示例

#pragma mark 支付宝支付回调
- (void)alipayProcessOrderWithPaymentResult:(NSDictionary *)resultDic
{
    NSString *resultStatus = [resultDic objectForKey:@"resultStatus"];
    NSString *memo;
    if ([resultStatus intValue] == 9000) {
        memo = @"支付成功!";
    }else {
        switch ([resultStatus intValue]) {
            case 4000:
                memo = @"失败原因:订单支付失败!";
                break;
            case 6001:
                memo = @"失败原因:用户中途取消!";
                break;
            case 6002:
                memo = @"失败原因:网络连接出错!";
                break;
            case 8000:
                memo = @"正在处理中...";
                break;
            default:
                memo = [resultDic objectForKey:@"memo"];
                break;
        }
    }
    [IWAlert singleAlertWithTarget:[UIApplication sharedApplication].keyWindow.rootViewController title:@"支付宝支付" message:memo actionTitle:@"确定" success:nil];
}

支付宝SDK及demo下载地址: https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值