在接口中我们可以看到下面两个方法在iOS9.0之后废弃了,如下两个方法只适用于iOS4.2-iOS9.0。
改用下面的方法
标题阐述的问题的原因是:
之前 设置微信支付代理写在了废弃的方法中,所以就相当于没有设置代理,所以代理方法onResp:不会被调用,这样支付的结果(成功、失败)我们就没法知道,就不能够进行后续的一些操作了(我们的项目的后续操作是:返回上一界面,刷新订单状态)
-
步骤1:判断是微信支付,然后调用设置微信支付的代理
- 步骤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;
}
}
}
备注:支付宝支付,银联支付, 想要拿到支付之后结果的话 ,也和微信支付一样,都要执行新增的两个方法。