无忧回调修改
This commit is contained in:
@@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
import org.springframework.web.context.request.WebRequest;
|
||||
import org.springframework.web.servlet.NoHandlerFoundException;
|
||||
|
||||
@@ -33,33 +34,37 @@ public class SqxExceptionHandler {
|
||||
|
||||
@ExceptionHandler(NoHandlerFoundException.class)
|
||||
public Result handlerNoFoundException(Exception e, WebRequest webRequest) {
|
||||
String requestUrl = webRequest.getDescription(false).split(" ")[1];
|
||||
logger.error("请求路径不存在:{}", requestUrl);
|
||||
logErrorInfo(webRequest);
|
||||
logger.error(e.getMessage(), e);
|
||||
return Result.error(404, "路径不存在,请检查路径是否正确");
|
||||
}
|
||||
|
||||
@ExceptionHandler(DuplicateKeyException.class)
|
||||
public Result handleDuplicateKeyException(DuplicateKeyException e, WebRequest webRequest) {
|
||||
String requestUrl = webRequest.getDescription(false).split(" ")[1];
|
||||
logger.error("请求路径:{},数据库中已存在该记录", requestUrl);
|
||||
logErrorInfo(webRequest);
|
||||
logger.error(e.getMessage(), e);
|
||||
return Result.error("数据库中已存在该记录");
|
||||
}
|
||||
|
||||
@ExceptionHandler(AuthorizationException.class)
|
||||
public Result handleAuthorizationException(AuthorizationException e, WebRequest webRequest) {
|
||||
String requestUrl = webRequest.getDescription(false).split(" ")[1];
|
||||
logger.error("请求路径:{},没有权限", requestUrl);
|
||||
logErrorInfo(webRequest);
|
||||
logger.error(e.getMessage(), e);
|
||||
return Result.error("没有权限,请联系管理员授权");
|
||||
}
|
||||
|
||||
@ExceptionHandler(Exception.class)
|
||||
public Result handleException(Exception e, WebRequest webRequest) {
|
||||
String requestUrl = webRequest.getDescription(false).split(" ")[1];
|
||||
logger.error("请求路径:{},发生异常", requestUrl);
|
||||
logErrorInfo(webRequest);
|
||||
logger.error(e.getMessage(), e);
|
||||
return Result.error();
|
||||
}
|
||||
|
||||
private void logErrorInfo(WebRequest webRequest) {
|
||||
if (webRequest instanceof ServletWebRequest) {
|
||||
ServletWebRequest servletWebRequest = (ServletWebRequest) webRequest;
|
||||
String requestUrl = servletWebRequest.getRequest().getRequestURI();
|
||||
logger.error("请求路径:{},发生异常", requestUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,13 +69,14 @@ public class WuyouController {
|
||||
payDetails.setMoney(order.getPayMoney().doubleValue());
|
||||
payDetails.setType(1);
|
||||
payDetails.setClassify(9);
|
||||
payDetails.setTradeNo(AliPayOrderUtil.createOrderId());
|
||||
payDetailsDao.insert(payDetails);
|
||||
} else {
|
||||
payDetails.setOrderId(AliPayOrderUtil.createOrderId());
|
||||
payDetails.setTradeNo(AliPayOrderUtil.createOrderId());
|
||||
payDetailsDao.updateById(payDetails);
|
||||
}
|
||||
|
||||
BaseResp baseResp = WuyouPay.payOrder(order.getOrdersNo(), order.getPayMoney().toString(), request.getHeader("User-Agent"));
|
||||
BaseResp baseResp = WuyouPay.payOrder(order.getTradeNo(), order.getPayMoney().toString(), request.getHeader("User-Agent"));
|
||||
if (baseResp.getCode() != 200) {
|
||||
return Result.error(baseResp.getMsg());
|
||||
}
|
||||
@@ -84,12 +85,12 @@ public class WuyouController {
|
||||
}
|
||||
|
||||
@PostMapping("/extractNotify")
|
||||
public String extractNotify(HttpServletRequest request, @RequestBody NotifyDto notifyDto) {
|
||||
public String extractNotify(HttpServletRequest request, NotifyDto notifyDto) {
|
||||
log.info("无忧支付提现回调, {}", notifyDto);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("callbacks", notifyDto.getCallbacks());
|
||||
params.put("total", notifyDto.getTotal());
|
||||
params.put("out_trade_no", notifyDto.getOutTradeNo());
|
||||
params.put("out_trade_no", notifyDto.getOut_trade_no());
|
||||
params.put("status", notifyDto.getStatus());
|
||||
params.put("msg", notifyDto.getMsg());
|
||||
|
||||
@@ -103,13 +104,13 @@ public class WuyouController {
|
||||
}
|
||||
|
||||
@PostMapping("/notify")
|
||||
public String notify(HttpServletRequest request, @RequestBody NotifyDto notifyDto) {
|
||||
public String notify(HttpServletRequest request, NotifyDto notifyDto) {
|
||||
log.info("无忧支付回调, {}", notifyDto);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("callbacks", notifyDto.getCallbacks());
|
||||
params.put("total", notifyDto.getTotal());
|
||||
params.put("out_trade_no", notifyDto.getOutTradeNo());
|
||||
params.put("pay_time", notifyDto.getPayTime());
|
||||
params.put("out_trade_no", notifyDto.getOut_trade_no());
|
||||
params.put("pay_time", notifyDto.getPay_time());
|
||||
|
||||
String sign = Encrypt.getParamsSign(params);
|
||||
if (!sign.equals(notifyDto.getSign())) {
|
||||
@@ -119,7 +120,13 @@ public class WuyouController {
|
||||
|
||||
log.info("无忧支付回调成功, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
|
||||
Orders order = ordersService.selectOrderByTradeNo(notifyDto.getOutTradeNo());
|
||||
PayDetails payDetails = payDetailsDao.selectByTradeNo(notifyDto.getOut_trade_no());
|
||||
|
||||
if (payDetails.getState() != 0) {
|
||||
log.info("订单表信息丢失!");
|
||||
}
|
||||
// {"callbacks":"CODE_SUCCESS","out_trade_no":"1000001931380634","pay_time":"1733306566","sign":"7B2C5B55AA09CE07DAE1CC847F51C0BC","total":0.01}
|
||||
Orders order = ordersService.selectOrderByTradeNo(payDetails.getOrderId());
|
||||
if (order == null) {
|
||||
log.error("无忧支付回调订单不存在, 参数: {}", JSONObject.toJSONString(notifyDto));
|
||||
return "订单不存在";
|
||||
@@ -130,14 +137,8 @@ public class WuyouController {
|
||||
return "订单已支付";
|
||||
}
|
||||
|
||||
PayDetails payDetails = payDetailsDao.selectByOrderId(notifyDto.getOutTradeNo());
|
||||
|
||||
if (payDetails.getState() != 0) {
|
||||
log.info("订单表信息丢失!");
|
||||
}
|
||||
|
||||
String format = sdf.format(new Date());
|
||||
payDetailsDao.updateState(payDetails.getId(), 1, format, notifyDto.getOutTradeNo());
|
||||
payDetailsDao.updateState(payDetails.getId(), 1, format, notifyDto.getOut_trade_no());
|
||||
|
||||
order.setPayWay(9);
|
||||
order.setStatus(1);
|
||||
|
||||
@@ -22,6 +22,8 @@ public interface PayDetailsDao extends BaseMapper<PayDetails> {
|
||||
|
||||
PayDetails selectByOrderId(@Param("orderId") String orderId);
|
||||
|
||||
PayDetails selectByTradeNo(@Param("tradeNo") String tradeNo);
|
||||
|
||||
int updateState(@Param("id") Long id, @Param("state") Integer state, @Param("time") String time, @Param("tradeNo") String tradeNo);
|
||||
|
||||
IPage<Map<String, Object>> selectPayDetails(@Param("page") Page<Map<String, Object>> page, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("userId") Long userId, @Param("state") Integer state, @Param("userName") String userName, String orderId);
|
||||
|
||||
@@ -12,11 +12,9 @@ public class NotifyDto {
|
||||
private String callbacks;
|
||||
private Double total;
|
||||
|
||||
@JSONField(name = "out_trade_no")
|
||||
private String outTradeNo;
|
||||
private String out_trade_no;
|
||||
|
||||
@JSONField(name = "pay_time")
|
||||
private String payTime;
|
||||
private String pay_time;
|
||||
|
||||
private String msg;
|
||||
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
select * from pay_details d where d.order_id=#{orderId}
|
||||
</select>
|
||||
|
||||
<select id="selectByTradeNo" resultType="com.sqx.modules.pay.entity.PayDetails">
|
||||
select * from pay_details d where d.trade_no=#{tradeNo}
|
||||
</select>
|
||||
|
||||
<update id="updateState">
|
||||
update pay_details set `state`=#{state},pay_time=#{time},trade_no=#{tradeNo} where id=#{id}
|
||||
</update>
|
||||
@@ -174,4 +178,4 @@
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user