From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 11 七月 2024 10:47:51 +0800 Subject: [PATCH] 玩湃微信商户认证代码 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 83 +++++++++++++++++++++++------------------ 1 files changed, 47 insertions(+), 36 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java index a1b9533..e8b4200 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java @@ -47,6 +47,7 @@ /** * 购买年度会员 + * * @param uid * @return * @throws Exception @@ -61,10 +62,10 @@ vipPayment.setPayStatus(1); vipPayment.setState(1); this.baseMapper.insert(vipPayment); - if(payType == 1){//微信 + if (payType == 1) {//微信 return weixinpay(vipPayment); } - if(payType == 2){//支付宝 + if (payType == 2) {//支付宝 return alipay(vipPayment); } return ResultUtil.success(); @@ -73,26 +74,27 @@ /** * 微信 + * * @param vipPayment * @return * @throws Exception */ - public ResultUtil weixinpay(VipPayment vipPayment) throws Exception{ + public ResultUtil weixinpay(VipPayment vipPayment) throws Exception { String code = vipPayment.getCode(); ResultUtil weixinpay = payMoneyUtil.weixinpay("购买年度会员", "", code, vipPayment.getAmount().toString(), "/base/appUser/addVipPaymentWeChatCallback", "APP", ""); - if(weixinpay.getCode() == 200){ + if (weixinpay.getCode() == 200) { new Thread(new Runnable() { @Override public void run() { try { int num = 1; int wait = 0; - while (num <= 10){ + while (num <= 10) { int min = 5000; wait += (min * num); VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code)); - if(vipPayment1.getPayStatus() == 2){ + if (vipPayment1.getPayStatus() == 2) { return; } /** @@ -106,24 +108,24 @@ * ACCEPT--已接收,等待扣款 */ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); - if(resultUtil.getCode() == 200){ + if (resultUtil.getCode() == 200) { Map<String, String> map = resultUtil.getData(); String trade_type = map.get("trade_type"); String trade_state = map.get("trade_state"); String transaction_id = map.get("transaction_id"); - if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){ + if ("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)) { vipPayment1.setState(3); VipPaymentServiceImpl.this.updateById(vipPayment1); return; } - if("SUCCESS".equals(trade_state)){ + if ("SUCCESS".equals(trade_state)) { vipPayment1.setPayStatus(2); vipPayment1.setPayTime(new Date()); vipPayment1.setOrderNumber(transaction_id); VipPaymentServiceImpl.this.updateById(vipPayment1); TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId()); Date vipEndTime = appUser.getVipEndTime(); - if(null == vipEndTime){ + if (null == vipEndTime) { vipEndTime = new Date(); } Calendar calendar = Calendar.getInstance(); @@ -137,20 +139,20 @@ redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600); return; } - if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){ + if ("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)) { Thread.sleep(wait); num++; } - }else{ + } else { Thread.sleep(wait); num++; } - if(10 == num){ + if (10 == num) { vipPayment1.setState(3); VipPaymentServiceImpl.this.updateById(vipPayment1); } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } @@ -162,26 +164,32 @@ /** * 支付宝 + * * @param vipPayment * @return * @throws Exception */ - public ResultUtil alipay(VipPayment vipPayment) throws Exception{ + private String smid = "2088330203191220";//平台支付宝商户号 + public ResultUtil alipay(VipPayment vipPayment) throws Exception { String code = vipPayment.getCode(); - ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId()+"", code, vipPayment.getAmount().toString(), + String amount = vipPayment.getAmount().toString(); + ResultUtil alipay = payMoneyUtil.alipay + (smid,"购买年度会员", "购买年度会员", + vipPayment.getAppUserId() + "", + code, vipPayment.getAmount().toString(), "/base/appUser/addVipPaymentAliCallback"); - if(alipay.getCode() == 200){ + if (alipay.getCode() == 200) { new Thread(new Runnable() { @Override public void run() { try { int num = 1; int wait = 0; - while (num <= 10){ + while (num <= 10) { int min = 5000; wait += (min * num); VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code)); - if(vipPayment1.getPayStatus() != 1){ + if (vipPayment1.getPayStatus() != 1) { return; } @@ -194,20 +202,17 @@ */ AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); - if(resultUtil.getCode().equals("10000")){ -// Map<String, String> map = resultUtil.getData(); -// String tradeStatus = map.get("tradeStatus"); -// String tradeNo = map.get("tradeNo"); - + if (resultUtil.getCode().equals("10000")) { String tradeNo = resultUtil.getTradeNo(); String tradeStatus = resultUtil.getTradeStatus(); - System.out.println("ssssss"+tradeStatus); - if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)){ + System.out.println("ssssss" + tradeStatus); + if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) { vipPayment1.setState(3); VipPaymentServiceImpl.this.updateById(vipPayment1); + return; } - if("TRADE_SUCCESS".equals(tradeStatus)){ + if ("TRADE_SUCCESS".equals(tradeStatus)) { vipPayment1.setPayStatus(2); vipPayment1.setPayTime(new Date()); vipPayment1.setOrderNumber(tradeNo); @@ -216,7 +221,7 @@ TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId()); Date vipEndTime = appUser.getVipEndTime(); appUser.setIsVip(1); - if(null == vipEndTime){ + if (null == vipEndTime) { vipEndTime = new Date(); } Calendar calendar = Calendar.getInstance(); @@ -227,22 +232,24 @@ // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限 List<Long> longs = userConponClient.queryCouponByUser(appUser.getId()); redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600); + // 如果交易结束 将当前订单金额分配到商户 + payMoneyUtil.confirm(smid,vipPayment.getCode(),tradeNo,amount); return; } - if("WAIT_BUYER_PAY".equals(tradeStatus)){ + if ("WAIT_BUYER_PAY".equals(tradeStatus)) { Thread.sleep(wait); num++; } - }else{ + } else { Thread.sleep(wait); num++; } - if(10 == num){ + if (10 == num) { vipPayment1.setState(3); VipPaymentServiceImpl.this.updateById(vipPayment1); } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } @@ -252,10 +259,9 @@ } - - /** * 购买年度会员支付回调处理 + * * @param code * @param orderNumber * @throws Exception @@ -263,7 +269,7 @@ @Override public synchronized ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception { VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code)); - if(vipPayment1.getPayStatus() == 2){ + if (vipPayment1.getPayStatus() == 2) { return ResultUtil.success(); } vipPayment1.setPayStatus(2); @@ -272,9 +278,14 @@ VipPaymentServiceImpl.this.updateById(vipPayment1); TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId()); + Date vipEndTime = appUser.getVipEndTime(); + if (null == vipEndTime) { + vipEndTime = new Date(); + } Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); + calendar.setTime(vipEndTime); calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1); + appUser.setIsVip(1); appUser.setVipEndTime(calendar.getTime()); appUserService.updateById(appUser); // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限 -- Gitblit v1.7.1