支付宝多次执行异步回调
今天在测试支付宝PC支付的时候,发现了一个问题:我在业务处理,调用支付宝异步回调的时候会向DB中插入一条订单支付成功的日志,意外的是,第二天早上发现同一订单id多了好几条订单支付成功的日志,经过查资料,支付宝发起了多次异步回调,原来是我在异步回调的时候没有将success打印出来。
如果没有给支付宝响应success,支付宝一直进行异步回调
异步回调的频率:
解决:
方法一:判断成功后,在异步回调接口返回 “success”的字符串
return “success”
方法二:使用字节流打印success
String result ="";
if(signVerified){//验签成功
result="success";
}else{
result="fail";
}
//下面代码放在业务处理之后,不然业务代码不会执行
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
out.write(result);
out.flush();
out.close();
给出我的参考资料来源: