支付系统中,当我们接收到三方支付的异步通知后,如果我们自己也有回调通知的业务需求该如何解决呢?
网上给出了很多解决方案,例如使用消息队列中的延时消息.或者采用动态定时器的方式.
这里我们采用的是定时器的方式,更简单,更轻便.
接触过支付的可能都会了解到,当用户支付成功之后,支付平台会给我们发送多次通知,告诉我们支付成功,在接受到通知消息后,我们就可以对订单进行操作.以完成整个支付流程 .但如果我们要搭建自己的支付平台,同样的需要给使用我们平台的用户发送通知. 通常这个通知是以多次,不同时间间隔进行发送.避免网络问题,用户接收不到.下面就是使用定时器的方式给用户发送通知.当然前提和其他三方支付一样,用户下单时需要给我传递一个回调的地址.我们需要向这个地址发送多次通知.
这里采用的hutool的动态定时器的方式,代码如下:
- 开启hutool定时器,再启动类里开启定时器秒级任务
@SpringBootApplication
public class XsPlatformApplication {
public static void main(String[] args) {
SpringApplication.run(XsPlatformApplication.class, args);
// 支持秒级别定时任务
CronUtil.setMatchSecond(true);
CronUtil.start();
}
}
</