微信支付和支付宝支付 买票问题的锁定问题

   最近公司的项目设计上门O2O的技师上门服务,其中某一个特定的技师,每天的8:30   9:00  9:30   10:00 ......20:00  这些时间段可以被预约,如果一个用户预约了9:00 的技师,而没有付款,那么9:00 9:30  10:00  这三个时间需要被置灰,即这三个时间点技师在服务,不能提供服务。

   用户下单的过程是这样的:调后台接口告诉后台预约的技师姓名,电话,预约的时间,上门的地址等信息生成一个类似12306 那样的订单。只要提交了订单在30分钟之内可以继续支付。

没问题的-----

   1)如果用户在30分钟之内完成,完成支付(不管是一气呵成完成支付还是想支付后来取消又走的继续支付的流程),生成订单成功是不会存在问题的

   2)如果用户在29分钟55秒开始支付,或者说第2分钟开始支付到支付宝页面停留,停留到29分钟55秒开始支付,在这个支付的过程中用户需要输入密码,由于密码需要时间,用户可能在30分钟30秒或者31分钟完成了支付,而系统设定的时间是30分钟未完成支付取消订单,用户在30分钟30秒付完钱,结果用户的订单在30分钟被取消了 ,用户选择的上门时间9:00 可以被别人预约了

   3)后台不停的检测用户是否付款成功,付款成功后台可以接收到付款成功的tradeNo(绑定某一笔订单的唯一标示),如果付款成功了即使订单后台取消了,又让用户的订单有效,即将后台开放的预约时间9:00置灰  改为不可预约,如果在30分订单取消,开放预约时间9:00,31分钟30秒完成支付收回开放的预约时间,9:00

 如果在30分开放预约时间点  到31分钟30秒支付成功收回开放的预约时间内,没有客户预约该技师的9:00 时间段   ,整个系统也是没问题的

有问题的-----

   4)万一在30分开放预约到31分30秒收回预约这段时间 ,9:00时间段是可以预约的,有另外的客户预约了该技师下单成功,到支付宝完成支付,就会造成9:00 的

时间段被两个人同时预约。一个技师同时被两个人预约到底去为谁提供服务??? 这就存在问题了。

解决方案:订单被取消的时间是15分钟,必须15分钟之内完成支付,第15分钟没预约就取消订单, 并不是一取消订单就解除时间锁定,解除订单锁定的时间是第45分钟。

这样就可以减少用户在14分钟40秒去开始支付,到支付宝页面,用户在第15分钟到第45分钟完成了支付,而时间被别人抢跑的概率,保证用户停留在支付宝页面的30分钟内付款了 ,而时间实际上还是为用户保留着 ,其他的用户不能预约。  第45分钟开放预约时间,别人可以约了 如果支付宝和微信的超时时间是30分钟  当用户在接近15分钟开始支付   并且在支付宝输入密码的界面停留了整整超过了30分钟完成支付,如果超时时间是30分钟,必定不会存在问题,如果超时时间是40分钟,用户在接近15分钟开始支付,到释放预约时间9:00 时候支付成功了,而这个时间被别人预约了  情况还是存在的,当时这种情况的概率应该很低了,如果用户在5分钟之内开始支付,超时时间是40分钟,哈市不会出现问题,

 

   假设如果支付宝和微信支付可以设置超时时间15分钟,用户下单在第2分钟 跑到支付宝页面等15分钟就再支付,15分钟内支付可以,超过15分钟再去支付,提示超时订单似乎可以解决问题。一端超过15分钟,不能支付,如果想下单,重新选择时间,9:00 9:30  10:00 被锁定不能预约不会产生冲突,后台自动取消订单时间是30分钟之后,没问题。

如果可以设定超时时间就可以解决这个问题

   如果用户在第15分钟开始倒计时内再去选择支付,再等待15分钟去支付,在页面停留30分钟,还是存在16分钟订单时间9:00 9:30  10:00解除锁定  14:50秒去支付,并且支付成功,订单时间被锁定,再解除锁定和重新锁定被别人预约的情况还是存在的。因此为了避免这种情况,倒计时时间是15分钟,订单解除锁定的时间可能需要后延迟15分钟(去支付宝微信支付设置的超时时间15分钟 才能把9:00  9:30  10:00  放出来),即后台超时时间15分钟 +支付宝和微信超时时间15分钟(可能是30分钟,貌似超时时间还不能设定)后才解除9:00,才可以避免两个人同时预约一个时间。

如果不能使用超时时间那么必定存在两个用户同时预约一个技师的情况

 

另外的解决方案:

  每次用户发布一个订单,给技师一个推送,技师超过了15分钟没预约去和预约人沟通,是否取消订单,要么付款要么取消,付款了订单有效,没付款技师取消订单,取消了订单9:00 9:30  10:00 时间解除锁定(时间解除锁定,要么让技师自己排上,要么后台发现取消了订单自动解锁)这样人工干预貌似简单

缺点:用户体验不好,用户只是下个单试试,技师就得打电话,还得给技师发推送,即打扰技师又打扰用户

优点目前还没分析出来。

 

 

 

 

 

 

 

 

 

 

 

 

 
 

微信支付和支付宝支付 买票问题的锁定问题

上一篇:获取微信服务器IP地址


下一篇:ios接收数据的两种方式 一种是ASI 另一种是系统自带的类