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