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