一、情景
上节演示了乘客付款和订单分账的时候,微信服务器消息队列中积压的分账任务很多,导致我们创建分账请求之后,并没有立即成功分账。响应中status状态是分账中。致使当前的定时器并没有把分账记录修改成2状态。遇到这种情况,我们应该再创建一个20分钟之后运行的定时器。用来检查分账的结果。如果分账成功,我们就把数据库中分账记录的status字段改为2状态。
二、微信官方文档
参考链接:https://pay.weixin.qq.com/wiki/doc/api/allocation_php?chapter=27_2&index=3
发起请求时需要的参数:
微信返回的响应里面参数:
三、创建查询分账任务类
缺少的代码:WXPayConstants.SignType.HMACSHA256
缺少的代码:profitsharingId
log.error("验证数字签名失败", new HxdsException("验证数字签名失败"));
catch (Exception e) { e.printStackTrace(); }
四、设置定时任务
在 HandleProfitsharingJob.java 类中,我们补全Java代码。如果遇到分账中的情况,我们就设置20分钟后运行的定时器,查询分账结果。