java 支付完成后如何更新支付状态_(JAVA)最近在做到支付宝的一码多付支付接口,发现没有异步回调通知,需要自己轮询查询订单状态,这个需要怎么实现?...

考虑到用线程或者定时任务,不知道有没有人做过这个

类似的异步处理通知接口基本上都需要做这种处理的,因为异步的回调通知总会因为网络或者处理延时造成没有进行回调通知。

具体的做法就是首先在调用异步接口前,需要先生成一个待处理的订单,然后调用支付宝接口进行支付,支付完成后正常情况支付宝会主动请求你的回调接口,如果没有请求的话,你的订单状态将会保持待处理的状态。

然后再做一个定时任务,每隔一段时间,查询一下待处理的订单,根据支付宝返回的订单状态来更新对应的状态就可以了,需要注意的是控制订单查询的时间,不建议把所有的订单找出来去更新,根据你的数据量来处理,一般的话远程请求支付宝接口同步处理的话也比较耗时,未处理的订单太多了就根本处理不过来,建议的做法是直接把查询请求发送到MQ上,然后根据数据量大小开多个消费者服务,来处理查询请求。

另外还有一种简单粗暴的方式也可以,直接对待处理的订单不做处理,但是给用户提供一个功能,让用户主动发起请求,用户点击重试按钮后直接调用支付宝查询接口查询订单支付状态。

订单的几个状态: 待支付,已支付到支付宝,支付宝支付完成。

主要应对的是:已支付到支付宝。

考虑的几个点: 实时性,幂等性

实时性:根据你具体的业务场景,单进程多线程,多进程处理。多进程的话需要分区段处理数据,保证数据的不重复

幂等:每个订单必须有唯一的标识,每个环节处理的时候,保证这个订单已经被处理过了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值