From 0af329d7210a84c97ec071735a2d0d1d7b0b785c Mon Sep 17 00:00:00 2001 From: zhanglin8526 <852614290@qq.com> Date: 星期六, 26 八月 2023 13:58:48 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java | 63 ++++++++++++++++++++++++------- 1 files changed, 49 insertions(+), 14 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java index 07a4a0f..2eb78df 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java @@ -1,9 +1,35 @@ package com.ruoyi.order.controller.miniapp; +import com.github.binarywang.wxpay.bean.ecommerce.*; +import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Response; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyData; +import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult; +import com.github.binarywang.wxpay.exception.WxPayException; +import com.github.binarywang.wxpay.service.ProfitSharingV3Service; +import com.github.binarywang.wxpay.service.WxPayService; +import com.github.binarywang.wxpay.v3.auth.Verifier; +import com.github.binarywang.wxpay.v3.util.AesUtils; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.order.domain.vo.ProfitSharingNotifyNewResult; +import com.ruoyi.order.enums.WxPayNotifyEventTypeEnum; +import com.ruoyi.order.service.account.BackMessageService; +import com.ruoyi.order.service.order.OrderService; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiOperation; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.security.GeneralSecurityException; +import java.util.Map; +import java.util.Objects; /** * @program: ruoyi @@ -14,9 +40,10 @@ @Api(value = "微信通知控制", tags = "微信通知控制", description = "微信通知控制") @RestController @RequestMapping("/app/notify") +@Log4j2 public class NotifyController extends BaseController { - /*public static final String WECHAT_PAY_SERIAL = "Wechatpay-Serial"; + public static final String WECHAT_PAY_SERIAL = "Wechatpay-Serial"; public static final String WECHAT_PAY_SIGNATURE = "Wechatpay-Signature"; public static final String WECHAT_PAY_TIMESTAMP = "Wechatpay-Timestamp"; public static final String WECHAT_PAY_NONCE = "Wechatpay-Nonce"; @@ -26,7 +53,7 @@ @Resource private OrderService orderService; - @Autowired + @Resource private WxPayService wxService; @Resource private BackMessageService backMessageService; @@ -36,7 +63,9 @@ public String payNotify(@RequestBody String notifyData, HttpServletRequest request, HttpServletResponse response) throws WxPayException { // 获取请求头 - SignatureHeader signatureHeader = getSignatureHeader(response); + SignatureHeader signatureHeader = getSignatureHeader(request); + + log.info("微信支付/退款通知: {}", notifyData); NotifyResponse responseData = GSON.fromJson(notifyData, NotifyResponse.class); String eventType = responseData.getEventType(); @@ -63,7 +92,6 @@ // 保存支付/退款回调信息 backMessageService.saveBackMessage(resultType, resultMessage); - return WxPayNotifyV3Response.success("成功"); } @@ -72,10 +100,10 @@ public String profitSharingNotify(@RequestBody String notifyData, HttpServletRequest request, HttpServletResponse response) throws WxPayException { ProfitSharingV3Service sharingV3Service = wxService.getProfitSharingV3Service(); // ProfitSharingNotifyResult + log.info("微信分账通知: {}", notifyData); // 获取请求头 - SignatureHeader signatureHeader = getSignatureHeader(response); - + SignatureHeader signatureHeader = getSignatureHeader(request); ProfitSharingNotifyNewResult notifyResult = getProfitSharingNotifyData(notifyData, signatureHeader); ProfitSharingNotifyResult result = notifyResult.getResult(); @@ -137,12 +165,19 @@ beforeSign.getBytes(StandardCharsets.UTF_8), header.getSigned()); } - private SignatureHeader getSignatureHeader(HttpServletResponse response){ + private SignatureHeader getSignatureHeader(HttpServletRequest request){ SignatureHeader signatureHeader = new SignatureHeader(); - signatureHeader.setSerialNo(response.getHeader(WECHAT_PAY_SERIAL)); - signatureHeader.setSigned(response.getHeader(WECHAT_PAY_SIGNATURE)); - signatureHeader.setNonce(response.getHeader(WECHAT_PAY_NONCE)); - signatureHeader.setTimeStamp(response.getHeader(WECHAT_PAY_TIMESTAMP)); + signatureHeader.setSerialNo(request.getHeader(WECHAT_PAY_SERIAL)); + signatureHeader.setSigned(request.getHeader(WECHAT_PAY_SIGNATURE)); + signatureHeader.setNonce(request.getHeader(WECHAT_PAY_NONCE)); + signatureHeader.setTimeStamp(request.getHeader(WECHAT_PAY_TIMESTAMP)); + + log.info("timeStamp:{} nonce : {} signed:{} serialNo:{}", + signatureHeader.getTimeStamp(), + signatureHeader.getNonce(), + signatureHeader.getSigned(), + signatureHeader.getSerialNo()); + return signatureHeader; - }*/ + } } -- Gitblit v1.7.1