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/WXController.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/yeshi/buwan/controller/WXController.java b/src/main/java/com/yeshi/buwan/controller/WXController.java
index cae8182..b2ab888 100644
--- a/src/main/java/com/yeshi/buwan/controller/WXController.java
+++ b/src/main/java/com/yeshi/buwan/controller/WXController.java
@@ -1,6 +1,11 @@
 package com.yeshi.buwan.controller;
 
+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.StringUtil;
+import com.yeshi.buwan.util.user.VipUtil;
+import com.yeshi.buwan.util.vip.VIPOrderUtil;
 import net.sf.json.JSONObject;
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
@@ -10,6 +15,7 @@
 import org.yeshi.utils.entity.wx.WXAPPInfo;
 import org.yeshi.utils.wx.WXPayV3Util;
 
+import javax.annotation.Resource;
 import javax.crypto.Cipher;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.spec.GCMParameterSpec;
@@ -17,16 +23,22 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.security.GeneralSecurityException;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Base64;
+import java.util.Date;
 
 @Controller
 @RequestMapping("wx")
 public class WXController {
     Logger logger = LoggerFactory.getLogger(WXController.class);
+
+    @Resource
+    private VIPService vipService;
 
     private static String decryptToString(String apiV3Key, String associatedData, String nonce, String ciphertext)
             throws GeneralSecurityException, IOException {
@@ -53,7 +65,7 @@
      * @throws Exception
      */
     private void process(HttpServletRequest request) throws Exception {
-        WXAPPInfo wxappInfo = new WXAPPInfo();
+        WXAPPInfo wxappInfo = VipUtil.getWXAPP();
         //楠岃瘉璇佷功搴忓垪鍙�
         String mchSerialNo = request.getHeader("Wechatpay-Serial");
         if (!mchSerialNo.equalsIgnoreCase(wxappInfo.getMchSerialNo())) {
@@ -98,13 +110,18 @@
                 if (tradeState.equalsIgnoreCase("SUCCESS")) {
                     boolean isPaySuccess = WXPayV3Util.isPaySuccess(outTradeNo, wxappInfo);
                     if (isPaySuccess) {
-                        //TODO 鏀粯鎴愬姛
+                        BigDecimal money = new BigDecimal(decript.optJSONObject("amount").optInt("total")).divide(new BigDecimal(100), 2, RoundingMode.FLOOR);
+                        String id = VIPOrderUtil.getIdFromOutOrderNo(outTradeNo);
+                        try {
+                            vipService.paySuccess(id, VIPOrderRecord.PAY_WAY_WX, money, new Date());
+                        } catch (VIPException e) {
+                            logger.error("璁㈠崟鏀粯鎴愬姛澶勭悊鍑洪敊锛歿}", id, e);
+                        }
                     }
                 }
 
                 break;
         }
-
     }
 
 

--
Gitblit v1.8.0