您好,我们现在使用咱们微信平台进行支付;用户支付成功之后,偶尔出现业务系统接收不到回调的情况;导致业务系统操作无法继续,或者用户重复缴费;
我们现在考虑使用页面定时器,每隔几秒刷新一次,检查是否回调;假如10s之后,还是没有回调,我们主动发起“查询订单”请求。
当查询结果,显示支付成功;我们执行后面逻辑;假如收到回调信息来了,我们判断当前流水号是否已经处理,假如已处理业务结束;
当查询结果,显示支付中;我们提示支付中,然后让用户手动查询支付结果,查询结果成功,我们处理后续逻辑;
当查询结果,显示支付失败,我们直接结束业务;
你看看这个方案是否可行?
1、回调通知,微信是有个时间间隔机制通知的,比如5秒、10秒、30分等等,当微信回调数据时,处理此订单是否完成并返回成功标识给微信,不然微信回调在适当的间隔就会给你发送回调消息,同理若处理完订单并返回成功标识给微信,下次就不会再回调了;
2、重复缴费,也就是重复支付,可以在前端调起支付时,先查一下当前用户30秒内或1分钟内是否有成功支付的订单,若有则提示不再重复支付,反之可以支付。
回调后进行查单的操作是可行的。但一般来说,只要你的回调地址设置正确,回调地址能正常访问。是不会出现回调收不到的情况。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_2&index=2用这个检查一下网络。