From e8e342cd6c1334f1b8f71d24baa3157637a9ac43 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 04 二月 2021 19:33:26 +0800
Subject: [PATCH] 完善PPTV

---
 src/main/java/com/yeshi/buwan/controller/AlipayController.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/AlipayController.java b/src/main/java/com/yeshi/buwan/controller/AlipayController.java
index 808982d..8735a20 100644
--- a/src/main/java/com/yeshi/buwan/controller/AlipayController.java
+++ b/src/main/java/com/yeshi/buwan/controller/AlipayController.java
@@ -2,14 +2,20 @@
 
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.internal.util.AlipaySignature;
+import com.alipay.api.response.AlipayTradeQueryResponse;
+import com.yeshi.buwan.domain.vip.VIPOrderRecord;
+import com.yeshi.buwan.exception.vip.VIPException;
+import com.yeshi.buwan.service.inter.vip.VIPService;
 import com.yeshi.buwan.util.RedisManager;
 import com.yeshi.buwan.util.StringUtil;
 import com.yeshi.buwan.util.user.VipUtil;
+import com.yeshi.buwan.util.vip.VIPOrderUtil;
 import org.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.alipay.AlipayH5PayUtil;
 import org.yeshi.utils.entity.alipay.AlipayAppInfo;
 
 import javax.annotation.Resource;
@@ -17,6 +23,8 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -28,6 +36,9 @@
 
     @Resource
     private RedisManager redisManager;
+
+    @Resource
+    private VIPService vipService;
 
     @RequestMapping("printPayForm")
     public void printPayForm(String formId, HttpServletResponse response) {
@@ -65,10 +76,6 @@
         String outTradeNo = map.get("out_trade_no");
         String tradeStatus = map.get("trade_status");
 
-        //鏀粯鎴愬姛
-        if ("TRADE_SUCCESS".equalsIgnoreCase(tradeStatus)) {
-
-        }
 
         logger.info("鏀粯鍥炶皟锛�" + new JSONObject(map).toString());
         AlipayAppInfo app = VipUtil.getAlipayApp();
@@ -76,6 +83,20 @@
         try {
             boolean right = AlipaySignature.rsaCheckV1(map, app.getAlipayPublicKey(), "GBK", map.get("sign_type"));
             if (right) {
+                //鏀粯鎴愬姛
+                if ("TRADE_SUCCESS".equalsIgnoreCase(tradeStatus)) {
+                    AlipayTradeQueryResponse res = AlipayH5PayUtil.queryOrder(app, outTradeNo, null);
+                    //鏀粯鎴愬姛
+                    if (res.isSuccess() && "TRADE_SUCCESS".equalsIgnoreCase(res.getTradeStatus())) {
+                        String id = VIPOrderUtil.getIdFromOutOrderNo(outTradeNo);
+                        try {
+                            vipService.paySuccess(id, VIPOrderRecord.PAY_WAY_ALIPAY, new BigDecimal(res.getPayAmount()), new Date());
+                        } catch (VIPException e) {
+                            e.printStackTrace();
+                            logger.error("鏀粯鎴愬姛鍥炶皟鍑洪敊 id锛歿}", id, e);
+                        }
+                    }
+                }
                 response.getWriter().print("success");
                 response.getWriter().close();
             }

--
Gitblit v1.8.0