后台没有打印异步通知的信息
来源:7-17 微信支付完成页面跳转-1

qq_汁_0
2020-04-26
使用微信支付成功后后台没有打印异步通知的信息
@Override
public String asyncNotify(String notifyData) {
//1. 签名检验
PayResponse payResponse = bestPayService.asyncNotify(notifyData);
log.info(“异步通知 response={}”, payResponse);
//2. 金额校验(从数据库查订单)
//比较严重(正常情况下是不会发生的)发出告警:钉钉、短信
PayInfo payInfo = payInfoMapper.selectByOrderNo(Long.parseLong(payResponse.getOrderId()));
if (payInfo == null) {
//告警
throw new RuntimeException("通过orderNo查询到的结果是null");
}
//如果订单支付状态不是"已支付"
if (!payInfo.getPlatformStatus().equals(OrderStatusEnum.SUCCESS.name())) {
//Double类型比较大小,精度。1.00 1.0
if (payInfo.getPayAmount().compareTo(BigDecimal.valueOf(payResponse.getOrderAmount())) != 0) {
//告警
throw new RuntimeException("异步通知中的金额和数据库里的不一致,orderNo=" + payResponse.getOrderId());
}
//3. 修改订单支付状态
payInfo.setPlatformStatus(OrderStatusEnum.SUCCESS.name());
payInfo.setPlatformNumber(payResponse.getOutTradeNo());
payInfoMapper.updateByPrimaryKeySelective(payInfo);
}
if (payResponse.getPayPlatformEnum() == BestPayPlatformEnum.WX) {
//4. 告诉微信不要再通知了
return "<xml>\n" +
" <return_code><![CDATA[SUCCESS]]></return_code>\n" +
" <return_msg><![CDATA[OK]]></return_msg>\n" +
"</xml>";
}else if (payResponse.getPayPlatformEnum() == BestPayPlatformEnum.ALIPAY) {
return "success";
}
throw new RuntimeException("异步通知中错误的支付平台");
}
写回答
1回答
-
廖师兄助理
2020-04-28
打断点追踪一下,还有可以打log日志看一下
00
相似问题