From 18fb219ee5ed5c267665b4c84d2306eea25349f6 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 10 Oct 2023 16:09:33 +0800 Subject: [PATCH] redbagprod --- src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java | 65 ++++++++++++++++++++++++++++---- 1 files changed, 56 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java b/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java index b9655e0..a3e1bc2 100644 --- a/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java +++ b/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java @@ -1,14 +1,23 @@ package cc.mrbird.febs.pay.controller; -import cc.mrbird.febs.common.entity.FebsResponse; -import com.alibaba.fastjson.JSONObject; +import cc.mrbird.febs.pay.properties.AliPayProperties; +import cc.mrbird.febs.pay.service.AliIPayService; +import cc.mrbird.febs.pay.service.IPayService; +import com.alipay.api.AlipayApiException; +import com.alipay.api.internal.util.AlipaySignature; +import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; +import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; +import com.github.binarywang.wxpay.exception.WxPayException; +import com.github.binarywang.wxpay.service.WxPayService; import com.ijpay.alipay.AliPayApi; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.beans.factory.annotation.Autowired; 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 javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -21,14 +30,52 @@ @RequestMapping(value = "/api/pay") public class PayCallBackController { + @Autowired + private AliIPayService payService; + + @Resource + private AliPayProperties aliPayProperties; + + @Autowired + private WxPayService wxPayService; +// private WxPayService wxPayService = new com.github.binarywang.wxpay.service.impl.WxPayServiceImpl(); + + @Autowired + private IPayService wechatPayService; + @RequestMapping("/aliCallBack") - public FebsResponse aliPayCallBack(HttpServletRequest request) { - log.info("进入回调"); + public String aliPayCallBack(HttpServletRequest request){ + log.info("进入支付宝回调"); Map<String, String> params = AliPayApi.toMap(request); - log.info("回调参数:{}", JSONObject.toJSONString(params)); - for (Map.Entry<String, String> entry : params.entrySet()) { - log.info("支付宝回调:{}===={}", entry.getKey(), entry.getValue()); + + boolean verifyResult = false; + try { + verifyResult = AlipaySignature.verifyV1(params, aliPayProperties.getPublicKey(), "UTF-8", "RSA2"); + } catch (AlipayApiException e) { + log.info("=验证失败=:{}", params); + return "failure"; } - return new FebsResponse().success(); + + if (verifyResult) { + if ("TRADE_SUCCESS".equals(params.get("trade_status")) || "TRADE_FINISHED".equals(params.get("trade_status"))) { + payService.aliCallback(params); + return "success"; + } else { + log.info("支付失败:{}", params); + return "failure"; + } + } else { + log.info("验证失败:{}", params); + return "failure"; + } + } + + @PostMapping(value = "/wxPayCallBack") + public String wxPayCallBack(@RequestBody String xmlData) throws WxPayException { + log.info("=======微信回调:{}========", xmlData); + WxPayOrderNotifyResult notifyResult = this.wxPayService.parseOrderNotifyResult(xmlData); + + wechatPayService.payCallback(notifyResult.toMap()); + return WxPayNotifyResponse.success("成功"); } } -- Gitblit v1.9.1