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