合同主体列表添加两条合同主体,返回合并支付页面,支付总弹"请选择合同主体",删除后,竟然还能支付(改合并支付页面的字段状态)
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,写出详细的复现步骤,跟正常的情况对比,比较正常和异常的区别
合同主体列表添加两条合同主体,返回合并支付页面,支付总弹"请选择合同主体",删除后,竟然还能支付(改合并支付页面的字段状态)的更多相关文章
- mybatis+oracle添加一条数据并返回所添加数据的主键问题
最近做mybatis+oracle项目的时候解决添加一条数据并返回所添加数据的主键问题 controller层 @RequestMapping("/addplan") public ...
- QTableView 一列添加两个按钮
在QTableView的一列里添加两个按钮,之前添加一个按钮的思路是一样的,只是计算了一下按钮的宽,放两个按钮而已. 添加一个按钮的例子:QTableView 添加按钮 本例源代码:QtTowButt ...
- Qt 杂记——QTableWidget列表添加、删除(备份)
1.列表的添加 需求:向一个有两列的Table中添加一条数据 思路:新建一个inputDialog,通过按钮打开Qt自带的inputDialog,传递回输入的数据,再添加到列表中 界面: 代码: in ...
- 详细介绍如何计算两条折线的交点并使用Echarts展示以及图表优化
1.背景 前段时间公司有个需求,需要在一个图表中展示两条折线,并且绘制出两条线的交点.为了满足需求大哥的需求,我也是着实想了有一会.下面我就把具体的实现过程给大家展示一下. 1.1.ECharts 简 ...
- struts2上传文件添加进度条
给文件上传添加进度条,整了两天终于成功了. 想要添加一个上传的进度条,通过分析,应该是需要不断的去访问服务器,询问上传文件的大小.通过已上传文件的大小, 和上传文件的总长度来评估上传的进度. 实现监听 ...
- poj 3177 Redundant Paths【求最少添加多少条边可以使图变成双连通图】【缩点后求入度为1的点个数】
Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11047 Accepted: 4725 ...
- iOS viewController添加导航条以及返回跳转选择
给单独的viewcontroller或者在Appdelegate的主页面添加导航条,只要在viewcontroller上添加navigationcontroller,在添加此navigationcon ...
- 动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条
已知一个表 table 里面有两个字段 A1 和 A2 如何用动态语句 判断 A1 = A , A2=B 的数据是否存在,如果不存在,就添加一条数据, A1 = A , A2 = B INSERT ...
- Office WPS如何在页眉页脚添加一条横线
点击样式,页眉,修改 然后设置格式,可以添加一条或者两条横线,也可以设置不同的线型 最后效果如下图所示
随机推荐
- Android 手机摇一摇功能的实现
package myapplication.com.myapp.activity; public class Home_Activity extends AppCompatActivity{ //传感 ...
- 在VS中建立.aspx,.cs,.designer.cs之间的级联关系
<Compile Include="..\Admin\Actions.aspx.cs"> <DependentUpon>Actions.aspx</D ...
- MAC 远程桌面链接 证书或链接无效
RDC --> 首选项 --> 安全性 --> 勾选即使验证失败也要链接. 问题解决.
- Centos7 修改mysql指定用户的密码
1.登陆mysql或者mariadb(两种任选其一) [root@localhost ~]# mysql -u root [root@localhost ~]# mysql -uroot -p 2.切 ...
- Centos7 安装配置Mysql
Centos7默认自带的mariadb数据库,它是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL ...
- 多线程下NSOperation、NSBlockOperation、NSInvocationOperation、NSOperationQueue的使用
本篇文章主要介绍下多线程下NSOperation.NSBlockOperation.NSInvocationOperation.NSOperationQueue的使用,列举几个简单的例子. 默认情况下 ...
- Emmet,让你爱上敲代码
原文链接:http://m.blog.csdn.net/article/details?id=53484535 不错 —— 由 都不要欺负我 分享 Emmet 是一个可用在许多流行文本编辑器上的极大简 ...
- C#中对string与string[]的初步操作
开篇之作,简单的对string与string[]进行初步操作,入门篇也,不多说,直接上代码. using System; using System.Collections.Generic; using ...
- Day20160425
技术要求: 1.git使用 pull.push.cheakout.master.clone(本地提交有优势) 2.Maven(依赖init.install.compile.package.clean. ...
- 如何快速的解决Maven依赖冲突
为什么会出现依赖冲突 首先要说明Maven的依赖管理,具体的可以参考这边 Maven学习——依赖管理 这篇文章,maven在依赖冲管理中有一下几个原则. 依赖是使用Maven坐标来定位的,而Maven ...