From 4011b8d0b377af33e2bc435f7726329630d706cb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 02 三月 2021 18:28:52 +0800
Subject: [PATCH] 搜索引擎接口更新

---
 src/main/java/com/yeshi/buwan/controller/WXController.java |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 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..ab9abf5 100644
--- a/src/main/java/com/yeshi/buwan/controller/WXController.java
+++ b/src/main/java/com/yeshi/buwan/controller/WXController.java
@@ -1,6 +1,10 @@
 package com.yeshi.buwan.controller;
 
+import com.yeshi.buwan.service.inter.vip.VIPService;
 import com.yeshi.buwan.util.StringUtil;
+import com.yeshi.buwan.util.log.LoggerUtil;
+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;
@@ -8,8 +12,8 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 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,6 +21,8 @@
 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;
@@ -27,6 +33,9 @@
 @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,12 +62,13 @@
      * @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())) {
-            throw new Exception("璇佷功搴忓垪鍙蜂笉涓�鑷�");
-        }
+        LoggerUtil.getTestLogger().info("寰俊鏀粯mchSerialNo锛歿}",mchSerialNo);
+//        if (!mchSerialNo.equalsIgnoreCase(wxappInfo.getMchSerialNo())) {
+//            throw new Exception("璇佷功搴忓垪鍙蜂笉涓�鑷�");
+//        }
 
         String timeStamp = request.getHeader("Wechatpay-Timestamp");
         String nonce = request.getHeader("Wechatpay-Nonce");
@@ -69,7 +79,7 @@
             if (request.getInputStream() != null) {
                 String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
                 data = entity;
-                logger.error("寰俊鏀粯鍥炶皟entity锛�" + entity);
+                LoggerUtil.getTestLogger().info("寰俊鏀粯鍥炶皟entity锛歿}",entity);
             }
         } catch (IOException e) {
             e.printStackTrace();
@@ -89,6 +99,7 @@
                 String ciphertext = resource.optString("ciphertext");
                 String r = decryptToString(wxappInfo.getApiV3Key(), resource.optString("associated_data"), resource.optString("nonce"), ciphertext);
                 //瑙e瘑鏍煎紡濡備笅 {"mchid":"1520950211","appid":"wxa99686bb65a9f466","out_trade_no":"buwan-vip-8","transaction_id":"4200000796202101259681241680","trade_type":"MWEB","trade_state":"SUCCESS","trade_state_desc":"鏀粯鎴愬姛","bank_type":"OTHERS","attach":"","success_time":"2021-01-25T16:18:33+08:00","payer":{"openid":"oq7R20lxhKF8qSnkszxFJHViyKEY"},"amount":{"total":10,"payer_total":10,"currency":"CNY","payer_currency":"CNY"}}
+                LoggerUtil.getTestLogger().info("鏁版嵁瑙g爜锛歿}",r);
                 JSONObject decript = JSONObject.fromObject(r);
                 String outTradeNo = decript.optString("out_trade_no");
                 String appId = decript.optString("appid");
@@ -96,15 +107,11 @@
                 String tradeState = decript.optString("trade_state");
                 //鏀粯鎴愬姛
                 if (tradeState.equalsIgnoreCase("SUCCESS")) {
-                    boolean isPaySuccess = WXPayV3Util.isPaySuccess(outTradeNo, wxappInfo);
-                    if (isPaySuccess) {
-                        //TODO 鏀粯鎴愬姛
-                    }
+                    String id = VIPOrderUtil.getIdFromOutOrderNo(outTradeNo);
+                    vipService.checkOrderPayState(id);
                 }
-
                 break;
         }
-
     }
 
 
@@ -123,6 +130,7 @@
             data.put("message", "澶勭悊鎴愬姛");
             response.sendError(200, data.toString());
         } catch (Exception e) {
+            logger.error("寰俊鏀粯鍥炶皟澶勭悊鍑洪敊锛�",e);
             e.printStackTrace();
             JSONObject data = new JSONObject();
             data.put("code", "FAIL");

--
Gitblit v1.8.0