| | |
| | | } |
| | | Site site = siteService.getById(spaceId); |
| | | Store store = storeService.getById(site.getStoreId()); |
| | | |
| | | // 是否分账 0否1是 |
| | | int isFenZhang= 1; |
| | | String merchantNumber = ""; |
| | | if (store.getOperatorId()==null || store.getOperatorId()==0){ |
| | | // 平台 |
| | | isFenZhang = 0; |
| | | } |
| | | //判断当前用户是否是员工 |
| | | AppUser appUser1 = appUserClient.queryAppUser(uid); |
| | | List<User> one = userService.list(new QueryWrapper<User>().eq("phone", appUser1.getPhone()).eq("status", 1)); |
| | |
| | | return ResultUtil.error("运营商未配置微信商户号,获取支付失败!"); |
| | | } |
| | | return payMoneyUtil.weixinpayV3(smidVx,"游戏支付" |
| | | ,code,"/base/huimin/callBack/wechatPaymentGameCallback1", |
| | | ,code,"/base/game/wechatPaymentGameCallback1", |
| | | config.getCash().toString(),params); |
| | | } |
| | | |
| | |
| | | gameRecordService.updateById(tGameRecord); |
| | | String smid1=""; |
| | | String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+ configId + "_" + gameType; |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | // 判断属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | TGame game = gameService.getOne(new QueryWrapper<TGame>().eq("blue", sutuId).or().eq("red", sutuId)); |
| | | Integer operationId = game.getOperationId(); |
| | | Store byId = storeService.getById(game.getStoreId()); |
| | | Integer operationId = byId.getOperatorId(); |
| | | if (operationId==0){ |
| | | // 是平台的 |
| | | smid1 = smid; |
| | |
| | | |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(), |
| | | "/base/game/aliPaymentGameCallback"); |
| | | // if (alipay.getCode() == 200) { |
| | | // new Thread(new Runnable() { |
| | | // @Override |
| | | // public void run() { |
| | | // try { |
| | | // int num = 1; |
| | | // int wait = 0; |
| | | // while (num <= 10) { |
| | | // int min = 5000; |
| | | // wait += (min * num); |
| | | // Thread.sleep(wait); |
| | | // List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", code).eq("payType", 2)); |
| | | // TGameRecord one = list.get(0); |
| | | // if (one.getStatus() == 1) { |
| | | // break; |
| | | // } |
| | | // AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); |
| | | // if (resultUtil.getCode().equals("10000") && one.getStatus() == 0) { |
| | | // /** |
| | | // * WAIT_BUYER_PAY(交易创建,等待买家付款)、 |
| | | // * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 |
| | | // * TRADE_SUCCESS(交易支付成功)、 |
| | | // * TRADE_FINISHED(交易结束,不可退款) |
| | | // */ |
| | | // String tradeNo = resultUtil.getTradeNo(); |
| | | // String s = resultUtil.getTradeStatus(); |
| | | // if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { |
| | | // break; |
| | | // } |
| | | // if ("TRADE_SUCCESS".equals(s)) { |
| | | // for (TGameRecord gameRecord : list) { |
| | | // gameRecord.setStatus(1); |
| | | // gameRecord.setOrderNo(tradeNo); |
| | | // |
| | | // CourseCounsum courseCounsum = new CourseCounsum(); |
| | | // courseCounsum.setChangeType(3); |
| | | // courseCounsum.setInsertTime(new Date()); |
| | | // courseCounsum.setReason("智慧球场;" + config.getCash()); |
| | | // courseCounsum.setAppUserId(uid); |
| | | // courseRecordClient.save(courseCounsum); |
| | | // |
| | | // } |
| | | // gameRecordService.updateBatchById(list); |
| | | // Integer integer = startGame(uid, gameType, gameId, spaceId, sutuId); |
| | | // // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | // TGame game = gameService.getById(gameId); |
| | | // String smid2=""; |
| | | // Integer operationId = game.getOperationId(); |
| | | // if (operationId==0){ |
| | | // // 是平台的 |
| | | // smid2 = smid; |
| | | // }else{ |
| | | // String smidByOperatorId = siteService.getSMIDByOperatorId(operationId); |
| | | // smid2 = smidByOperatorId; |
| | | // } |
| | | // payMoneyUtil.confirm(smid2,code,tradeNo,config.getCash().toString()); |
| | | // break; |
| | | // } |
| | | // if ("WAIT_BUYER_PAY".equals(s)) { |
| | | // num++; |
| | | // } |
| | | // } |
| | | // } |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // }).start(); |
| | | // } |
| | | if (alipay.getCode() == 200) { |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | int num = 1; |
| | | int wait = 0; |
| | | while (num <= 10) { |
| | | int min = 5000; |
| | | wait += (min * num); |
| | | Thread.sleep(wait); |
| | | List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", code).eq("payType", 2)); |
| | | TGameRecord one = list.get(0); |
| | | if (one.getStatus() == 1) { |
| | | break; |
| | | } |
| | | AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); |
| | | if (resultUtil.getCode().equals("10000") && one.getStatus() == 0) { |
| | | /** |
| | | * WAIT_BUYER_PAY(交易创建,等待买家付款)、 |
| | | * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 |
| | | * TRADE_SUCCESS(交易支付成功)、 |
| | | * TRADE_FINISHED(交易结束,不可退款) |
| | | */ |
| | | String tradeNo = resultUtil.getTradeNo(); |
| | | String s = resultUtil.getTradeStatus(); |
| | | if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { |
| | | break; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(s)) { |
| | | for (TGameRecord gameRecord : list) { |
| | | gameRecord.setStatus(1); |
| | | gameRecord.setOrderNo(tradeNo); |
| | | |
| | | CourseCounsum courseCounsum = new CourseCounsum(); |
| | | courseCounsum.setChangeType(3); |
| | | courseCounsum.setInsertTime(new Date()); |
| | | courseCounsum.setReason("智慧球场;" + config.getCash()); |
| | | courseCounsum.setAppUserId(uid); |
| | | courseRecordClient.save(courseCounsum); |
| | | |
| | | } |
| | | gameRecordService.updateBatchById(list); |
| | | Integer integer = startGame(uid, gameType, gameId, spaceId, sutuId); |
| | | |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | | num++; |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | return alipay; |
| | | } else if (type == 3) { |
| | | tGameRecord.setMoney(config.getPlayCoin()); |
| | |
| | | Integer integer = startGame(Integer.valueOf(s[0]), Integer.valueOf(s[6]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); |
| | | TGameRecord one = gameRecordService.getOne(new QueryWrapper<TGameRecord>().eq("number", out_trade_no).eq("payType", 1)); |
| | | System.err.println("游戏支付记录"+one); |
| | | // if (one!=null){ |
| | | // Integer gameId = one.getGameId(); |
| | | // Site byId1 = siteService.getById(one.getSiteId()); |
| | | // Store byId = storeService.getById(byId1.getStoreId()); |
| | | // if (byId!=null){ |
| | | // if (byId.getOperatorId()!=null && byId.getOperatorId()!=0){ |
| | | // // 休眠两分钟后再调用分账接口 避免提示订单正在处理中 |
| | | // Thread.sleep(120000); |
| | | // // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例 |
| | | // OperatorUser operatorId = operatorUserService.getOne( |
| | | // new QueryWrapper<OperatorUser>().eq("operatorId",byId.getOperatorId()) |
| | | // ); |
| | | // if (operatorId.getWechatProportion() == null){ |
| | | // operatorId.setWechatProportion("0"); |
| | | // } |
| | | // if (operatorId.getAlipayProportion() == null){ |
| | | // operatorId.setAlipayProportion("0"); |
| | | // } |
| | | // String proportion= operatorId.getWechatProportion()+","+operatorId.getAlipayProportion(); |
| | | // String[] split = proportion.split(","); |
| | | // String s1 = split[0]; |
| | | // if (!s1.equals("未设置")){ |
| | | // BigDecimal bigDecimal = new BigDecimal(s1); |
| | | // // 分账比例 |
| | | // BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2); |
| | | // // 微信商户号 |
| | | // String s2 =siteService.getmerchantNumberByOperatorId(byId.getOperatorId()); |
| | | // String nonce_str = UUIDUtil.getRandomCode(16); |
| | | // |
| | | // ResultUtil fenzhang = payMoneyUtil.fenzhang(transaction_id, one.getMoney().multiply(bigDecimal1), s2,nonce_str,"玩游戏分账"); |
| | | // if (!fenzhang.getCode().equals(200)){ |
| | | // System.err.println("分账失败 原因是:"+fenzhang.getMsg()); |
| | | // }else{ |
| | | // one.setFenzhangNo(fenzhang.getData().toString()); |
| | | // one.setFenzhangOrderNo(nonce_str); |
| | | // one.setFenzhangAmount(one.getMoney().multiply(bigDecimal1)); |
| | | // gameRecordService.updateById(one); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // } |
| | | |
| | | PrintWriter out = null; |
| | | try { |
| | | out = response.getWriter(); |