二次支付:用户下单之后,没有直接支付,而是通过订单再次拉取支付信息,进行支付。
二次支付直接使用Redis的缓存功能实现,缓存时间建议比官方侧订单超时时间长2s,这样能保证订单有效时,redis一定能够取出支付链接。
在下单函数末尾,return之前,redis缓存返回数据。
在下单函数开头,redis查询缓存,如果有缓存,直接格式化为类return,否则执行正常的下单逻辑。
这样就快速实现了某支付方式的二次支付。开头的redis取值,拦截实现了相同订单号只能一次往下执行。结尾的redis设值,保存了订单支付信息到redis。