From bdf9983a1e03986e5304d1b87f1c6f80a5d908ed Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 17 Dec 2021 11:46:18 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video --- src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 58 insertions(+), 0 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 new file mode 100644 index 0000000..c907b36 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java @@ -0,0 +1,58 @@ +package cc.mrbird.febs.pay.controller; + +import cc.mrbird.febs.pay.properties.AliPayProperties; +import cc.mrbird.febs.pay.service.IPayService; +import com.alipay.api.AlipayApiException; +import com.alipay.api.internal.util.AlipaySignature; +import com.ijpay.alipay.AliPayApi; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +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; + +/** + * @author wzy + * @date 2021-09-27 + **/ +@Slf4j +@RestController +@RequestMapping(value = "/api/pay") +public class PayCallBackController { + + @Autowired + private IPayService payService; + + @Resource + private AliPayProperties aliPayProperties; + + @RequestMapping("/aliCallBack") + public String aliPayCallBack(HttpServletRequest request){ + log.info("进入支付宝回调"); + Map<String, String> params = AliPayApi.toMap(request); + + boolean verifyResult = false; + try { + verifyResult = AlipaySignature.verifyV1(params, aliPayProperties.getPublicKey(), "UTF-8", "RSA2"); + } catch (AlipayApiException e) { + log.info("=验证失败=:{}", params); + return "failure"; + } + + 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"; + } + } +} -- Gitblit v1.9.1