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