From d8c4799028caa87a9561710e1634a194c6480e98 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Wed, 22 Mar 2023 18:41:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=BE=AE=E4=BF=A1=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mdd/front/controller/PayController.java | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java index f260826c..6c4f06f5 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java @@ -109,31 +109,25 @@ public class PayController { @PostMapping("/notifyMnp") @ApiOperation("微信支付回调") public AjaxResult notifyMnp(@RequestBody String jsonData, HttpServletRequest request) throws WxPayException { - SignatureHeader signatureHeader = this.getWxRequestHeader(request); + // 构建签名 + SignatureHeader signatureHeader = new SignatureHeader(); + signatureHeader.setSignature(request.getHeader("wechatpay-signature")); + signatureHeader.setNonce(request.getHeader("wechatpay-nonce")); + signatureHeader.setSerial(request.getHeader("wechatpay-serial")); + signatureHeader.setTimeStamp(request.getHeader("wechatpay-timestamp")); + + // 解密数据 WxPayService wxPayService = WxPayDriver.handler(ClientEnum.MNP.getCode()); WxPayOrderNotifyV3Result.DecryptNotifyResult notifyResult = wxPayService.parseOrderNotifyV3Result(jsonData, signatureHeader).getResult(); + // 取出数据 String transactionId = notifyResult.getTransactionId(); String outTradeNo = notifyResult.getOutTradeNo(); String attach = notifyResult.getAttach(); + // 处理回调 iPayService.handlePaidNotify(attach, outTradeNo, transactionId); return AjaxResult.success(); } - @ApiOperation("微信支付回调签名相关") - private SignatureHeader getWxRequestHeader(HttpServletRequest request) { - String signature = request.getHeader("wechatpay-signature"); - String nonce = request.getHeader("wechatpay-nonce"); - String serial = request.getHeader("wechatpay-serial"); - String timestamp = request.getHeader("wechatpay-timestamp"); - - SignatureHeader signatureHeader = new SignatureHeader(); - signatureHeader.setSignature(signature); - signatureHeader.setNonce(nonce); - signatureHeader.setSerial(serial); - signatureHeader.setTimeStamp(timestamp); - return signatureHeader; - } - }