問題:支付寶多次執行異步回調,實際上已經調用成功了,但是還是一直在調用。導致回調後對訂單的操作被多次執行(非常可怕)
查閱很多資料,包括詢問支付寶客服,都說我返回值沒有返回"success"
但是我真的返回字符串success了,隨後又看到打印success的字節流可以解決
resStr = "success";
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
out.write(resStr.getBytes());
out.flush();
out.close();
然而好像沒有什麼軟用
只好通過業務來控制了
if (trade_status.equals("TRADE_SUCCESS")) {
// 回調成功之後的公共一些操作
Example example = new Example(OrderInfoEntity.class);
example.createCriteria().andEqualTo("orderNumber", out_trade_no);
OrderInfoEntity orderInfoEntity = orderInfoMapper.selectOneByExample(example);
if(orderInfoEntity.getOrderStatus().equals("1")){
return "success";
}
至此解決,實際上還是在回調,只是不讓他執行回調成功後的操作罷了