目前调用前端支付组件,在逻辑上感觉可以再调整下,希望在唤起支付窗口前加一个判断事件的函数。
- 目前的逻辑是,调用this.$refs.pay.open方法,传递必要的信息后,就可以直接发起支付进行付款;
- 但是有个问题,就是传递的付款金额是可能会被伪造的,目前调用这个组件的时候,只能在支付成功后的回调函数中去校验,付款的金额是否与数据库中业务订单金额一致;如果不一致,那么只能发起退款,再修改一些订单状态;
- 这个支付的流程用起来很不方便,如果只能在支付后的回调函数中校验金额,发生异常后只能做退款操作和修改一系列信息的操作,不太友好;
- 希望在唤起支付窗口前,增加一个额外的事件函数,用于校验支付的金额是否准确,如果这个时候校验就发现了问题,那就可以中止这次交易,不用唤起支付弹窗,直接拒绝发起支付;而不是在用户实际支付后再去退款操作;
- 我尝试在create事件中去判断,但是会先弹出支付窗口,就算判断了金额不对,用户也可以在此时扫二维码等方式进行支付;无法在支付前就拦截;而且关闭支付弹窗的方法也不是通用,需要判断各端,传入字段;
- 我也知道在使用this.$refs.pay.open方法前,通过查询数据库对传入的金额进行校验;但是我考虑的情况是,如果自己的校验方法被跳过,别人直接通过this.$refs.pay.open传参发起支付,那之前的校验也没用;如果在已经传入参数的情况下,发起实际支付前进行校验,各个方面都会比只在支付回调中校验更好;主要是参数校验后再传递进this.$refs.pay.open的过程中也有被篡改风险;
- 就希望在传入金额后,支付弹窗前,可以有个事件对金额进行校验,搭配支付回调的二次校验,可以避免很多不必要的操作;
XMN (作者)
拦截到你的请求,修改你的参数不是可以?
2024-04-09 10:39