PlatformApp优化

iOS之iOS9.0后跳支付点击左上角返回APP,兼听不到支付状

2018-06-05  本文已影响0人  京北磊哥

当用户点击了左上角系统的返回调起App时,微信或者支付宝的支付回调中获取不到回调的结果,想要实现当用户点击了左上角系统的返回时,跳转到我的订单页面,而不是停留在确认订单页面;监控用户的返回方式。

1>现在全局的单例中创建一个属性,用这个属性标记是从微信或支付宝点击左上角返回的,还是成功支付或者是取消支付返回的

//确认订单-----从支付宝或者微信直接返回

//1是支付成功 2是支付失败 3是点击左上角返回

@property(nonatomic,assign)NSIntegerbackNumber;

2>在确认订单的控制器中创建一个全局的布尔值,用这个布尔值标记用户是否点击了”确认订单"调起支付了,

//从微信支付宝直接返回

//YES调起支付了 NO未调起支付

@property(nonatomic,assign)BOOLisBack;

3>当用户点击”提交订单“获取到订单号调起支付的时候,将isBack设置为YES,并将单例中的backNumber设置成3

self.isBack=YES;

XZShareSetting.backNumber=3;

4>在支付的回调方法中,如果是支付成功,backNumber设置成1,支付失败,backNumber设置成2

#pragma mark -----回调方法

-(void)XZPayOrderResult:(NSInteger)rest;

{

   if(rest ==1) {

       XZShareSetting.backNumber=1;

    }else

    {//失败

       XZShareSetting.backNumber=2;

    }

}

5>当切换回本来的App时,由running状态切换到inactive状态,此时调用applicationWillEnterForeground:方法,在AppDelegate的applicationDidBecomeActive方法中判断backNumber的值,如果是3就发一个通知,确认是在点击了”确认订单”情况下从微信或者支付宝返回的,因为从app返回或者从后台唤起App或者是手机灭屏再打开都会走这个方法,

//appDelegate进入活跃状态

- (void)applicationDidBecomeActive:(UIApplication*)application{

   //商城

   if(XZShareSetting.backNumber==3) {

       //直接从支付宝或者微信点左上角返回

        [[NSNotificationCenterdefaultCenter]postNotificationName:KBackFromAlipayOrWechatobject:niluserInfo:nil];

    }

}

6>在确认订单的控制中接收这个通知

//从微信或者支付宝直接返回

    [[NSNotificationCenterdefaultCenter]addObserver:self

                                            selector:@selector(BackFromAlipayOrWechat:)

                                                name:KBackFromAlipayOrWechat

                                              object:nil];

7>并在方法中判断用户是否点击了”确认订单",如果点击了进行跳转,并将

#pragma mark -----从微信或者支付宝直接返回

- (void)BackFromAlipayOrWechat:(NSNotification*)notification {

   if(self.isBack) {//跳转我的订单

       if(XZShareSetting.backNumber==3) {

           //查看订单

           XZMyOrderViewController*orderView = [[XZMyOrderViewControlleralloc]init];

            orderView.isRemoveFather=YES;

           self.isBack=NO;

            [self.navigationControllerpushViewController:orderViewanimated:YES];

        }

    }

}

到此所有的情况判断结束,跳转完成

其中的一些定义

/**

 *  商城从支付宝或者微信返回

 */

#define KBackFromAlipayOrWechat @"BackFromAlipayOrWechat"

上一篇 下一篇

猜你喜欢

热点阅读