昨天线上发版,APP增加了双因子验证,结果一上线从下午开始某部门的客户就反馈表单提交等待图标闪一下就消失了,界面不变,不提示提交成功提示,而且不是他一个人,是很多人。
我本地模拟器试验后发现可以正常提交,又用同事真机测试发现也可以正常提交,以为是用户手机缓存问题,遂让其删了重新下载,结果问题还在。
就在这时候,我怀疑是上传图片的接口有问题,于是让其填了一张其他类型的单子,单子里面也有照片上传的功能,结果发现能够正常提交,这样就排除了接口的问题,但同样问题变得更加扑朔迷离了。
今天的时候,我询问了其他地区使用该APP的客户,均未发现有此情况产生。这时,我想到最有可能但又最没可能的原因:双因子验证。
因为是加了双因子验证之后造成的,但这一验证只加在登陆逻辑模块,表单提单根本不涉及到,而且这一验证是总公司要求,无法驳回的。
于是今天下午约了客户,用他的手机进行试验,我在代码里取消了双因子验证,运行后填单子发现可以正常提交。难道问题真的是双因子验证?
这时候我把手机还给用户,先打个没有双因子验证的apk包给用户使用,再慢慢寻找问题,结果用户说又出现那个问题了?
我大奇,怎么可能呢,拿过来一试果然问题再现。
此刻我脑子都快冒烟了,将近三十年的人生阅历告诉我这时遇上脏东西了。
就在我百思不得其解是,我看到用户填单信息时间段选择的是当下时间之前。这里涉及到一个问题是时间只能选择当下时间之后,因为这单子是针对接下来的功能使用,无法针对过去时间内的功能使用。
我把时间调后,发现问题再一次解决了。
果然问题出在时间上。我问用户为什么要选之前的时间。用户说因为现实中当他们提交了申请单后,申请单上填的时间段总比门卫那边电脑上看到的时间段是错开半小时的,也就是说APP上时间段是三点到三点半,但门卫电脑上看到的是三点半到四点,因此当人员需要在三点到三点半之间出去的话,就只能往前选时间。
我试了一下,发现并未出现用户所说的问题,我一度怀疑是用户记错了。因为这次APP和电脑端并没有针对这张表单进行任何修改。但是没关系,问题解决了,告诉他们不能选之前的时间就好。
客户走了以后,我开始复盘。
首先我查了代码,发现接口对时间是否小于当前时间做了逻辑管控,但是APP上接口只是对请求成功回调做了逻辑处理,并没有对请求失败坐逻辑处理,所以才会造成等待图标闪一下消失界面不变这样诡异的现象,因为根本没提交成功啊,原来当初在做这一块功能时虽然对各种意外情况做了处理,但完全没想到用户真的会错误使用。
后来我又查web端代码,用户虽然看花眼了,但总不会一直看花眼吧,突然我想到,这张单子在很久以前时间段存储错误,开始时间和结束时间存反了,那么这就导致提交成功后确实会造成选择的三点到三点半,但表单里面是三点半到四点,这个问题被我发现后修改过来了,这次发版一并发了,所以用户没看错,错的原来是自己,那么用户错误的使用方法是因为他们不知道错误原因,但是能改变自己的使用方法,人类的适应能力果然强大啊。
问题解决了,整个过程从不以为意到扑朔迷离,以为峰回路转,没想到还是原地踏步,最後才茅塞顿开,回想之后,原来是之前的种子,结出了此刻的恶果,一瞬间感慨,天道好轮回啊。
网友评论