| | |
| | | import com.nq.common.CmcPayConfig; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.dao.*; |
| | | import com.nq.enums.EStockType; |
| | | import com.nq.enums.EUserAssets; |
| | | import com.nq.pay.PayUtil; |
| | | import com.nq.pojo.*; |
| | | import com.nq.service.*; |
| | |
| | | @Autowired |
| | | PaymentRechargeService paymentRechargeService; |
| | | |
| | | @Autowired |
| | | UserAssetsServices userAssetsServices; |
| | | |
| | | public ServerResponse thirdPartyRecharge(HttpServletRequest request, String tradeAmount, Integer type) throws UnsupportedEncodingException, JsonProcessingException, NoSuchAlgorithmException { |
| | | // 支付1 |
| | | String reqUrl = "https://api.watchglb.com/pay/web"; |
| | |
| | | return ServerResponse.createByErrorCodeMsg(401,googleTranslateUtil.translate("请登录",lang )); |
| | | } |
| | | |
| | | if(type == 1){//支付1 |
| | | if(type == 2){//支付1 |
| | | return getPaymentOne(tradeAmount, reqUrl,user,request); |
| | | }else if(type == 2){//支付2 |
| | | }else if(type == 1){//支付2 |
| | | return getPaymentTwo(tradeAmount, uipReqRul, user,request); |
| | | } |
| | | return ServerResponse.createByErrorMsg("获取支付方式失败",request); |
| | |
| | | paymentRecharge.setNotifyUrl(getOrderTime()); |
| | | paymentRecharge.setPayInfo(payResponse.toString()); |
| | | paymentRechargeService.save(paymentRecharge); |
| | | |
| | | UserRecharge userRecharge = new UserRecharge(); |
| | | userRecharge.setUserId(user.getId()); |
| | | userRecharge.setNickName(user.getRealName()); |
| | | userRecharge.setAgentId(user.getAgentId()); |
| | | userRecharge.setOrderSn(params.get("out_trade_no")); |
| | | userRecharge.setPayChannel("Payment 1"); |
| | | userRecharge.setPayAmt(amount); |
| | | userRecharge.setAddTime(new Date()); |
| | | userRecharge.setPayTime(new Date()); |
| | | userRecharge.setOrderStatus(Integer.valueOf(0)); |
| | | userRecharge.setPayId(1); |
| | | userRechargeMapper.insert(userRecharge); |
| | | return ServerResponse.createBySuccess(payResponse.getData().getUrl()); |
| | | } |
| | | |
| | |
| | | PrintWriter pw = response.getWriter(); |
| | | |
| | | PaymentRecharge paymentRecharge = paymentRechargeService.getOne(new LambdaQueryWrapper<>(PaymentRecharge.class) |
| | | .eq(PaymentRecharge::getMchOrderNo, vo.getOut_trade_no()) |
| | | .eq(PaymentRecharge::getOrderNo,vo.getOut_trade_no()) |
| | | .eq(PaymentRecharge::getStatus,1) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | if(!vo.getStatus().equals("payin_ing")){ |
| | | log.error("充值2回调交易中:"+vo.toString()); |
| | | return; |
| | | } |
| | | |
| | | if(!vo.getStatus().equals("payin_fail")){ |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getAccount_fee())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | log.error("充值回调失败:"+vo.toString()); |
| | | return; |
| | | } |
| | | |
| | | if(ObjectUtils.isEmpty(paymentRecharge)){ |
| | | log.info("未找到充值订单"); |
| | | pw.print("error 未找到充值订单"); |
| | | return; |
| | | } |
| | | UserRecharge userRecharge = userRechargeMapper.selectOne(new LambdaQueryWrapper<>(UserRecharge.class) |
| | | .eq(UserRecharge::getOrderSn, paymentRecharge.getOrderNo()) |
| | | .eq(UserRecharge::getOrderStatus, 0).last(" limit 1")); |
| | | if(ObjectUtils.isEmpty(userRecharge)){ |
| | | log.info("未找到充值记录订单"); |
| | | pw.print("error 未找到充值订单"); |
| | | return; |
| | | } |
| | | |
| | | if(vo.getStatus().equals("payin_ing")){ |
| | | log.error("充值2回调交易中:"+vo.toString()); |
| | | return; |
| | | }else if(vo.getStatus().equals("payin_fail")){ |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getTotal_fee())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | userRecharge.setOrderStatus(2); |
| | | userRechargeMapper.updateById(userRecharge); |
| | | log.error("充值回调失败:"+vo.toString()); |
| | | return; |
| | | }else if(!vo.getStatus().equals("payin_fail") && !vo.getStatus().equals("payin_ing") && !vo.getStatus().equals("payin_success")){ |
| | | log.error("充值回调失败----未知状态:"+vo.toString()); |
| | | return; |
| | | } |
| | | |
| | | UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class) |
| | | .eq(UserAssets::getUserId, paymentRecharge.getUserId()) |
| | | .eq(UserAssets::getAccectType, "IN") |
| | | ); |
| | | ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getAccount_fee().toString(), "2"); |
| | | if(serverResponse.getStatus() == 0){ |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getAccount_fee())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | } |
| | | // ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getTotal_fee().toString(), "2"); |
| | | userAssetsServices.availablebalanceChange(EStockType.IN.getCode(), |
| | | paymentRecharge.getUserId(), EUserAssets.TOP_UP,new BigDecimal(vo.getTotal_fee().toString()),"",""); |
| | | |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getTotal_fee())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | |
| | | userRecharge.setOrderStatus(1); |
| | | userRechargeMapper.updateById(userRecharge); |
| | | |
| | | log.info("充值回调----完成"); |
| | | pw.print("success"); |
| | | pw.flush(); |