| | |
| | | |
| | | String reqUrl = "https://api.watchglbpay.com/pay/web"; |
| | | |
| | | // User user = userService.getCurrentRefreshUser(request); |
| | | // if(ObjectUtils.isNotEmpty(user)){ |
| | | // GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | // String lang = request.getHeader("lang"); |
| | | // return ServerResponse.createByErrorMsg(new Gson().toJson(ServerResponse.createByErrorCodeMsg(401,googleTranslateUtil.translate("请登录",lang )))); |
| | | // } |
| | | User user = userService.getCurrentRefreshUser(request); |
| | | if(ObjectUtils.isEmpty(user)){ |
| | | GoogleTranslateUtil googleTranslateUtil = new GoogleTranslateUtil(); |
| | | String lang = request.getHeader("lang"); |
| | | return ServerResponse.createByErrorCodeMsg(401,googleTranslateUtil.translate("请登录",lang )); |
| | | } |
| | | Map<String, String> params = new TreeMap<String, String>(); |
| | | //版本号 需同步返回JSON 必填,固定值 1.0 |
| | | params.put("version", "1.0"); |
| | |
| | | // params.put("goods_name", "用户:"+user.getId()+",充值"); |
| | | params.put("goods_name", "用户充值"); |
| | | //商户号 平台分配唯一 |
| | | params.put("mch_id", "222887002"); |
| | | params.put("mch_id", "100789033"); |
| | | //商家订单号 保证每笔订单唯一 |
| | | params.put("mch_order_no", generatePayOrderId()); |
| | | //异步通知地址 不超过 200 字节,支付成功后发起,不能携带参数 |
| | | params.put("notify_url", "http://api.durocaspitall.com/user/rechargeCallback.do"); |
| | | params.put("notify_url", "https://api.durocaspitall.com/user/rechargeCallback.do"); |
| | | // 订单时间 时间格式yyyy-MM-dd HH:mm:ss |
| | | params.put("order_date", getOrderTime()); |
| | | //支付类型 请查阅商户后台通道编码 |
| | | params.put("pay_type", "104"); |
| | | params.put("pay_type", "151"); |
| | | //交易金额 以元为单位 |
| | | params.put("trade_amount", tradeAmount); |
| | | |
| | | //商户秘钥必填 |
| | | String merchant_key = "8979d78b437948f18c14628ff1ad5f41"; |
| | | String merchant_key = "6ef36aa4d88a47a9a177c33c7199fff6"; |
| | | |
| | | String signInfo = SignUtil.sortData(params); |
| | | // 签名 signInfo签名参数排序, merchant_key商户私钥 |
| | |
| | | |
| | | System.out.println("result值:" + result); |
| | | |
| | | if(StringUtils.isEmpty(result)){ |
| | | return ServerResponse.createByErrorMsg("获取充值链接失败",request); |
| | | } |
| | | // 创建 ObjectMapper 实例 |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | |
| | |
| | | return ServerResponse.createByErrorMsg("获取充值链接失败",request); |
| | | } |
| | | PaymentRecharge paymentRecharge = new PaymentRecharge(); |
| | | paymentRecharge.setUserId(1); |
| | | paymentRecharge.setUserId(user.getId()); |
| | | paymentRecharge.setOrderNo(payResponse.getOrderNo()); |
| | | paymentRecharge.setMchOrderNo(payResponse.getMchOrderNo()); |
| | | paymentRecharge.setAmount(new BigDecimal(payResponse.getOriAmount())); |
| | |
| | | paymentRecharge.setNotifyUrl(payResponse.getPayInfo()); |
| | | paymentRecharge.setPayInfo(payResponse.toString()); |
| | | paymentRechargeService.save(paymentRecharge); |
| | | return ServerResponse.createBySuccessMsg(result); |
| | | return ServerResponse.createBySuccess(payResponse.getPayInfo()); |
| | | } |
| | | |
| | | public String generatePayOrderId() { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void rechargeCallback(HttpServletResponse response,RechargeCallbackVo rechargeCallbackVo) throws IOException { |
| | | synchronized (rechargeCallbackVo.getOrderNo()){ |
| | | public void rechargeCallback(PaymentResponse vo,HttpServletResponse response) throws IOException { |
| | | log.info("充值回调进来了:"+vo.toString()); |
| | | synchronized (vo.getOrderNo()){ |
| | | PrintWriter pw = response.getWriter(); |
| | | if(!rechargeCallbackVo.getTradeResult().equals("1")){ |
| | | log.error("充值回调失败:"+rechargeCallbackVo.toString()); |
| | | return; |
| | | } |
| | | |
| | | PaymentRecharge paymentRecharge = paymentRechargeService.getOne(new LambdaQueryWrapper<>(PaymentRecharge.class) |
| | | .eq(PaymentRecharge::getOrderNo, rechargeCallbackVo.getOrderNo()) |
| | | .eq(PaymentRecharge::getMchOrderNo, rechargeCallbackVo.getMchOrderNo()) |
| | | .eq(PaymentRecharge::getOrderNo, vo.getOrderNo()) |
| | | .eq(PaymentRecharge::getMchOrderNo, vo.getMchOrderNo()) |
| | | .eq(PaymentRecharge::getStatus,1) |
| | | .last("limit 1") |
| | | ); |
| | | |
| | | if(!vo.getTradeResult().equals("1")){ |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getOriAmount())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | log.error("充值回调失败:"+vo.toString()); |
| | | return; |
| | | } |
| | | |
| | | if(ObjectUtils.isEmpty(paymentRecharge)){ |
| | | pw.print("未找到充值订单"); |
| | | log.info("未找到充值订单"); |
| | | pw.print("error 未找到充值订单"); |
| | | return; |
| | | } |
| | | UserAssets userAssets = userAssetsMapper.selectOne(new LambdaQueryWrapper<>(UserAssets.class) |
| | | .eq(UserAssets::getUserId, paymentRecharge.getUserId()) |
| | | .eq(UserAssets::getAccectType, "IN") |
| | | ); |
| | | ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), rechargeCallbackVo.getAmount().toString(), "2"); |
| | | ServerResponse serverResponse = iUserAssetsServices.updateUserAssets(userAssets.getId(), vo.getOriAmount().toString(), "2"); |
| | | if(serverResponse.getStatus() == 0){ |
| | | paymentRecharge.setStatus(2); |
| | | paymentRecharge.setAmount(new BigDecimal(rechargeCallbackVo.getAmount())); |
| | | paymentRecharge.setPayInfo(rechargeCallbackVo.toString()); |
| | | paymentRecharge.setAmount(new BigDecimal(vo.getOriAmount())); |
| | | paymentRecharge.setPayInfo(vo.toString()); |
| | | paymentRechargeService.updateById(paymentRecharge); |
| | | } |
| | | log.info("充值回调----完成"); |
| | | pw.print("success"); |
| | | pw.flush(); |
| | | pw.close(); |
| | | } |
| | | } |
| | | |