工行ATM转帐——事务操做

今儿去工行ATM给已朋友转帐,遇到这么个状况:

选择对外转帐后输入转入帐号(输入两次),接着提示输入转入金额(输入一次金额),按肯定,系统提示交易中,3秒左右,
提示“输入帐号无效”,系统自动中断了操做,回到了初始界面,我勒个去,只好退卡,再试一次结果仍是同样,最后只好打电话
和朋友肯定帐号,原来帐号颠倒了俩个数字,汗死;再次去ATM操做转帐,转帐成功,我梳理下这个转帐流程(省略插卡,输入密码步骤):
1,选择转帐
2,选择转帐类型(对外,对内,币中)
3,输入两次转入帐号
4,输入一次转入金额,按“肯定”按钮
5,系统开始交易(自动),约 3~5秒出现提示“转入,xxx号xxx金额”
6,提示成功(自动)流程结束

这里忽略异常处理,从这个流程中能够看出有这么2个问题,

1,输入两次帐号后并无真实验证输入帐号的有效性(这两次1,2次仅是验证了帐号是否一致)这个验证可能放到了后面”肯定“按钮后,个人理由是这里操做很快体系也没有等待现象,主要是最后的交易中提示了“转入帐号无效”的提示

2,输入金额后,点击”肯定“后,开始交易,最后提示“转入,xxx号xxx金额”,系统自动就完成了转帐过程,并无再次提示
“转入,xxx号xxx金额”让用户最终确认,若是这里输入错误且有效的卡号,那钱就转到别人帐号中取了,岂不杯具鸟,这里全部验证都是在输入金额按”确认“后进行(转出,转入验证等),看似简化了操做,其实前面作了一大堆的操做,最后流程(若是异常)整个操做就失败了,系统作无用功
,客户也作无用功,我猜想在按”肯定“后,操做应该进入了事务阶段,这里有任何异常,都会退出或者回滚。也就说,这个事务阶段很“长”

我的认为,
1,输入两次帐号后,系统应该验证帐号(背后也要验证转出帐号是否合法)的合法性,这里并不须要事务,合法则往下操做,不然中断操做,引导用户返回操做(不要系统自动返回并结束流程)
2,在输入转入金额后,提示”转入xxx帐号xxx金额“,这里应该让用户“确认”,这里也不须要事务
3,最后在用户按”肯定“按钮后再开始转帐,这里开始事务
4,其余步骤同样

这里有两个验证一个是系统验证帐号的合法性另外一个是用户看到”转入xxx帐号xxx金额“肯定操做后,而不是输入金额后“肯定”(这里看不到”转入xxx帐号xxx金额“,最后系统倒提示了“转入xxx帐号xxx金额”这个时候用户是没有任何操做权的),系统开始正式转帐到这里全部条件都具有了(不要把准备工做放入事务,只把必要的操做放入事务),好处是,缩短事务范围,让用户最终肯定转帐(也能够在输入两次帐号后让用户肯定转入帐号,这样用户有两次决定权,而不是一次决定权)ajax

相关文章
相关标签/搜索