bug描述:
操作步骤:
1.进入“商标续展”产品详情页面,点击立即购买(数量设为2),进入合并订单界面,选择合同主体,点击全部,清空所有合同主体
2.新建合同主体保存,设置该合同主体为默认合同主体,返回到合并订单界面
3.点击“去支付”
4.点击选择合同主体,选中刚刚新建的合同主体绑定到该订单
5.删除该合同主体,再新建一个合同主体保存,并设置该合同主体为默认合同主体
结果:
第三步:提示“请选择合同主体”,不能支付
第四步:能跳到支付界面,但是提示“合同信息不存在”
期望:
第三步:应该能支付
第四步:支付时应不提示“合同信息不存在”
遇到的问题:
1.Q:选择了项目,合并支付页面下面却没有订单
A:账号问题,擦擦擦—问问同事就知道了!!!有测试环境专用的账号
我修改了pay方法(点击支付会调用),加了一个字符串变量,记录sectionHeader里面的变化
sectinHeader对应的变量:
修改pay方法里面的调用逻辑,if else条件,用字符串变量,控制,解决了"第三步,不能支付"的问题
Q:支付时候提示"合同信息不存在"
A:通过断点,跟踪调试,
最开始的发现点击cell可以正常支付,
点选"默认"返回支付就会报错,
正常的操作究竟做了些啥呢? 1.请求绑定的接口 2.发通知
于是我让点默认的时候也做这两件事,
原来点默认的时候发了另外一个通知叫做"moren",我现在直接不让它发这个通知了,只发点cell的通知???原来的通知直接不发了? 原来的通知永远都不发了
后来发现支付有时候仍然报错"合同信息不存在"
昨天快下班才发现,我在合同主体列表点选"默认"的时候已经请求过绑定的接口了,在合并支付页面不需要再请求这个接口了
我把合并支付页请求接口的代码注释掉就好了.
Q:删除合同主体,返回,仍然能支付,应该是不能支付的
A:在合并支付页面,收到通知后调用的方法里面将一个属性置为0 只有删除的是选中的合同主体才发删除的通知,删除非选中的不会发通知 这里有问题???还要别的地方改动么??
如果开始没有默认的,添加了几条,删除几条,支付是没问题的
如果开始没有默认的,添加了几条,删除几条,点cell设置默认,支付应该也是没问题的
为了实现在删除合同以后,点击支付弹窗提示,我在pay方法里面做了如下拦截:
isDeleteSelectedContrack这个变量是为了控制从购物车页面来到这个页面,不弹alert
总结:
1.使用变量,记录状态,变量用于在按钮点击的时候做判断,
2.在广播回调传递的字典里面添加键值对,同一个广播可以有不同的状态
3.使用NSObject分类发出网络请求,有啥好处? 到处都可以发请求,为啥不直接用网络单例呢?
4.封装的网络请求只有成功的回调,错误的回调统一处理,不知道为啥这么写:
5.可以复现的Bug,写出详细的复现步骤,跟正常的情况对比,比较正常和异常的区别