iOS微信支付:支付之后,代理方法onResp:不会执行(不会回调)

在接口中我们可以看到下面两个方法在iOS9.0之后废弃了,如下两个方法只适用于iOS4.2-iOS9.0

image.png

改用下面的方法
image.png


标题阐述的问题的原因是:
  • 之前 设置微信支付代理写在了废弃的方法中,所以就相当于没有设置代理,所以代理方法onResp:不会被调用,这样支付的结果(成功、失败)我们就没法知道,就不能够进行后续的一些操作了(我们的项目的后续操作是:返回上一界面,刷新订单状态)

  • 步骤1:判断是微信支付,然后调用设置微信支付的代理

    iOS微信支付:支付之后,代理方法onResp:不会执行(不会回调)_第1张图片
    image.png

  • 步骤2:获取支付结果。
//微信支付回调
- (void)onResp:(BaseResp *)resp
{
    if ([resp isKindOfClass:[PayResp class]])
    {
        PayResp *response = (PayResp *)resp;
        switch (response.errCode)
        {
            case WXSuccess:
                //服务器端查询支付通知或查询API返回的结果再提示成功
                NSLog(@"支付成功");
                [[NSNotificationCenter defaultCenter] postNotificationName:BB_NOTIFICATION_OrderOK object:nil userInfo:nil];
                break;
            case WXErrCodeUserCancel:
                //服务器端查询支付通知或查询API返回的结果再提示成功
                //交易取消
                [HemaFunction openIntervalHUDOK:@"已取消支付"];
                break;
            default:
                NSLog(@"支付失败, retcode=%d",resp.errCode);
                [[NSNotificationCenter defaultCenter] postNotificationName:BB_NOTIFICATION_OrderFail object:nil userInfo:nil];
                break;
        }
    }
}

备注:支付宝支付,银联支付, 想要拿到支付之后结果的话 ,也和微信支付一样,都要执行新增的两个方法。

你可能感兴趣的:(iOS微信支付:支付之后,代理方法onResp:不会执行(不会回调))