Files
FrameTour-BE/src/main/java/com/ycwl/basic/controller/mobile/AppWxPayController.java
2025-07-23 11:39:12 +08:00

68 lines
2.4 KiB
Java

package com.ycwl.basic.controller.mobile;
import com.ycwl.basic.annotation.IgnoreToken;
import com.ycwl.basic.enums.BizCodeEnum;
import com.ycwl.basic.model.wx.WXPayOrderReqVO;
import com.ycwl.basic.model.wx.WxPayRespVO;
import com.ycwl.basic.pay.entity.PayResponse;
import com.ycwl.basic.service.mobile.WxPayService;
import com.ycwl.basic.utils.ApiResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.security.GeneralSecurityException;
/**
* @Author: songmingsong
* @CreateTime: 2024-12-05
* @Description: 微信支付
* @Version: 1.0
*/
@RestController
@RequestMapping("/api/mobile/wx/pay/v1")
// 微信支付相关接口
public class AppWxPayController {
@Autowired
private WxPayService wxPayService;
// 微信支付回调
@PostMapping("/payNotify")
@IgnoreToken
public ApiResponse<?> payNotify(HttpServletRequest request) {
wxPayService.payNotify(request);
return ApiResponse.success(BizCodeEnum.REQUEST_OK);
}
@RequestMapping("/{scenicId}/payNotify")
@IgnoreToken
public Object payNotifyByScenicId(@PathVariable Long scenicId, HttpServletRequest request) {
PayResponse payResponse = wxPayService.payNotify(scenicId, request);
if (payResponse == null) {
return ApiResponse.buildResult(BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_FAILED);
}
if (StringUtils.isNotBlank(payResponse.getCustomResponse())) {
return payResponse.getCustomResponse();
}
return ApiResponse.success(BizCodeEnum.REQUEST_OK);
}
// 微信支付退款回调
@PostMapping("/{scenicId}/refundNotify")
@IgnoreToken
public ApiResponse<?> refundNotify(@PathVariable Long scenicId, HttpServletRequest request) throws GeneralSecurityException, IOException {
return ApiResponse.buildResult(wxPayService.refundNotify(scenicId, request) ?
BizCodeEnum.SUCCESS :
BizCodeEnum.ADVANCE_PAYMENT_CALLBACK_REFUND_FAILED);
}
}