这里贴上部分订单处理代码(requestPay为客户端上传字符串转对象):
AlipayTradeQueryResponse alipayTradeQueryResponse = null;
if (requestPay != null && requestPay.getAlipayTradeAppPayResponse() != null) {
for (int index = 0; alipayTradeQueryResponse == null && index < 3; index++) {
if (index != 0) {//这里为了防止订单处于处理中,给支付宝3s时间。可自行调节。
Thread.sleep(1000);
}
alipayTradeQueryResponse = AliPayUtils.getPayInfo(requestPay.getAlipayTradeAppPayResponse().getOutTradeNo()
, requestPay.getAlipayTradeAppPayResponse().getTradeNo());
}
if (alipayTradeQueryResponse != null) {
if ("10000".equals(alipayTradeQueryResponse.getCode())) {
String orderNumber = requestPay.getAlipayTradeAppPayResponse().getOutTradeNo();
//去数据库查找订单信息,这里为个人代码处理。
OrderHistory orderHistory = orderHistoryMapper.getOrderHistoryByOrderNumber(orderNumber);
if (orderHistory == null) {
//订单不存在,可以进行自己的处理。
} else {
//该订单已经存在
}
} else {
throw new Exception(alipayTradeQueryResponse.getSubMsg());
}
} else {
log.error("alipayTradeQueryResponse is null.requestPay=" + JSON.toJSONString(requestPay));
}
}