//這個是回調地址之后更新一些訂單狀態的方法
public ServerResponse aliCallback(Map<String,String> params){ //訂單號
Long orderNo = Long.parseLong(params.get("out_trade_no")); //支付寶的交易號
String tradeNo = params.get("trade_no"); //支付寶的交易狀態
String tradeStatus = params.get("trade_status"); //在這個方法里面查詢一下,看一下這個訂單號碼是否存在
Order order = orderMapper.selectByOrderNo(orderNo); if(order == null){ return ServerResponse.createByErrorMessage("非快樂慕商城的訂單,回調忽略"); } //在這里調用枚舉類,判斷訂單是否已經支付
if(order.getStatus() >= Const.OrderStatusEnum.PAID.getCode()){ return ServerResponse.createBySuccess("支付寶重復調用"); } //這里調用的是支付寶官方的枚舉 //“TRADE_STATUS_TRADE_SUCCESS”是交易完成的意思
if(Const.AlipayCallback.TRADE_STATUS_TRADE_SUCCESS.equals(tradeStatus)){ //記錄交易的時間,這個字符串是固定的
order.setPaymentTime(DateTimeUtil.strToDate(params.get("gmt_payment"))); order.setStatus(Const.OrderStatusEnum.PAID.getCode()); orderMapper.updateByPrimaryKeySelective(order); //把訂單狀態改成已付款
} PayInfo payInfo = new PayInfo(); payInfo.setUserId(order.getUserId()); payInfo.setOrderNo(order.getOrderNo()); payInfo.setPayPlatform(Const.PayPlatformEnum.ALIPAY.getCode()); payInfo.setPlatformNumber(tradeNo); payInfo.setPlatformStatus(tradeStatus); payInfoMapper.insert(payInfo); return ServerResponse.createBySuccess(); }
如果你感覺本文對你有幫助,歡迎進群一起探討交流:點我加群