临西县人民政府信息公开平台内容管理系统_51ppt模板官网网址_开发app需要多少钱刚好100_动漫设计与制作专业要艺考吗
public class PayController {@Resourceprivate WechatPayConfig wechatPayConfig;@Resourceprivate WechatPayRequest wechatPayRequest;@Resourceprivate CloseableHttpClient wxPayNoSignClient;@ApiOperation(value = "根据订单号查询订单-统一接口", notes = "根据订单号查询订单-统一接口")@ApiOperationSupport(order = 15)@GetMapping("/transactions/{orderNo}")public Map<String, Object> transactionsByOrderNo(@PathVariable("orderNo") String orderNo) {log.info("根据订单号查询订单,订单号: {}", orderNo);String url = wechatPayConfig.getBaseUrl().concat(WechatPayUrlEnum.ORDER_QUERY_BY_NO.getType().concat(orderNo)).concat("?mchid=").concat(wechatPayConfig.getMchId());String res = wechatPayRequest.wechatHttpGet(url);log.info("查询订单结果:{}",res);Map<String, Object> resMap = JSONObject.parseObject(res, new TypeReference<Map<String, Object>>(){});String outTradeNo = resMap.get("out_trade_no").toString();String appId = resMap.get("appid").toString();String mchId = resMap.get("mchid").toString();String tradeState = resMap.get("trade_state").toString();log.info("outTradeNo:"+outTradeNo);log.info("appId:"+appId);log.info("mchId:"+mchId);log.info("tradeState:"+tradeState);return resMap;}@ApiOperation(value = "关闭(取消)订单-统一接口", notes = "关闭(取消)订单-统一接口")@ApiOperationSupport(order = 20)@PostMapping("/closeOrder/{orderNo}")public void closeOrder(@PathVariable("orderNo") String orderNo) {log.info("根据订单号取消订单,订单号: {}", orderNo);String url = String.format(WechatPayUrlEnum.CLOSE_ORDER_BY_NO.getType(), orderNo);url = wechatPayConfig.getBaseUrl().concat(url);Map<String, String> params = new HashMap<>(2);params.put("mchid", wechatPayConfig.getMchId());String paramsStr = JSON.toJSONString(params);log.info("请求参数 ===> {}" + paramsStr);String res = wechatPayRequest.wechatHttpPost(url,paramsStr);}@ApiOperation(value = "申请退款-统一接口", notes = "申请退款-统一接口")@ApiOperationSupport(order = 25)@PostMapping("/refundOrder/{orderNo}")public void refundOrder(@PathVariable("orderNo") String orderNo) {log.info("根据订单号申请退款,订单号: {}", orderNo);String url = wechatPayConfig.getBaseUrl().concat(WechatPayUrlEnum.DOMESTIC_REFUNDS.getType());Map<String, Object> params = new HashMap<>(2);params.put("out_trade_no", orderNo);int outRefundNo = new Random().nextInt(999999999);log.info("退款申请号:{}",outRefundNo);params.put("out_refund_no",outRefundNo+"");params.put("reason","申请退款");params.put("notify_url", wechatPayConfig.getRefundNotifyUrl());Map<String, Object> amountMap =new HashMap<>();amountMap.put("refund", 1);amountMap.put("total", 1);amountMap.put("currency", "CNY");params.put("amount", amountMap);String paramsStr = JSON.toJSONString(params);log.info("请求参数 ===> {}" + paramsStr);String res = wechatPayRequest.wechatHttpPost(url,paramsStr);log.info("退款结果:{}",res);}@ApiOperation(value = "查询单笔退款信息-统一接口", notes = "查询单笔退款信息-统一接口")@ApiOperationSupport(order = 30)@GetMapping("/queryRefundOrder/{refundNo}")public Map<String, Object> queryRefundOrder(@PathVariable("refundNo") String refundNo) {log.info("根据订单号查询退款订单,订单号: {}", refundNo);String url = wechatPayConfig.getBaseUrl().concat(WechatPayUrlEnum.DOMESTIC_REFUNDS_QUERY.getType().concat(refundNo));String res = wechatPayRequest.wechatHttpGet(url);log.info("查询退款订单结果:{}",res);Map<String, Object> resMap = JSONObject.parseObject(res, new TypeReference<Map<String, Object>>(){});String successTime = resMap.get("success_time").toString();String refundId = resMap.get("refund_id").toString();String status = resMap.get("status").toString();String channel = resMap.get("channel").toString();log.info("successTime:"+successTime);log.info("channel:"+channel);log.info("refundId:"+refundId);log.info("status:"+status);return resMap;}@ApiOperation(value = "申请交易账单-统一接口", notes = "申请交易账单-统一接口")@ApiOperationSupport(order = 35)@GetMapping("/tradeBill")public String tradeBill(@RequestParam("billDate") String billDate, @RequestParam("billType") String billType) {log.info("申请交易账单,billDate:{},billType:{}", billDate,billType);String url = wechatPayConfig.getBaseUrl().concat(WechatPayUrlEnum.TRADE_BILLS.getType()).concat("?bill_date=").concat(billDate).concat("&bill_type=").concat(billType);String res = wechatPayRequest.wechatHttpGet(url);log.info("查询退款订单结果:{}",res);Map<String, Object> resMap = JSONObject.parseObject(res, new TypeReference<Map<String, Object>>(){});String downloadUrl = resMap.get("download_url").toString();return downloadUrl;}@ApiOperation(value = "申请资金账单-统一接口", notes = "申请资金账单-统一接口")@ApiOperationSupport(order = 40)@GetMapping("/fundFlowBill")public String fundFlowBill(@RequestParam("billDate") String billDate, @RequestParam("accountType") String accountType) {log.info("申请交易账单,billDate:{},accountType:{}", billDate,accountType);String url = wechatPayConfig.getBaseUrl().concat(WechatPayUrlEnum.FUND_FLOW_BILLS.getType()).concat("?bill_date=").concat(billDate).concat("&account_type=").concat(accountType);String res = wechatPayRequest.wechatHttpGet(url);log.info("查询退款订单结果:{}",res);Map<String, Object> resMap = JSONObject.parseObject(res, new TypeReference<Map<String, Object>>(){});String downloadUrl = resMap.get("download_url").toString();return downloadUrl;}@ApiOperation(value = "下载账单-统一接口", notes = "下载账单-统一接口")@ApiOperationSupport(order = 45)@GetMapping("/downloadBill")public void downloadBill(String downloadUrl) {log.info("下载账单,下载地址:{}",downloadUrl);HttpGet httpGet = new HttpGet(downloadUrl);httpGet.addHeader("Accept", "application/json");CloseableHttpResponse response =null;try {response = wxPayNoSignClient.execute(httpGet);String body = EntityUtils.toString(response.getEntity());int statusCode = response.getStatusLine().getStatusCode();if (statusCode == 200 || statusCode == 204) {log.info("下载账单,返回结果 = " + body);} else {throw new RuntimeException("下载账单异常, 响应码 = " + statusCode+ ", 下载账单返回结果 = " + body);}writeStringToFile(body);}catch (Exception e){throw new RuntimeException(e.getMessage());}finally {if(response!=null) {try {response.close();} catch (IOException e) {e.printStackTrace();}}}}private void writeStringToFile(String body) {FileWriter fw = null;try {String filePath = "C:\Users\lhz12\Desktop\wxPay.txt";fw = new FileWriter(filePath, true);BufferedWriter bw = new BufferedWriter(fw);bw.write(body);} catch (Exception e) {e.printStackTrace();}finally {try {if(fw!=null) {fw.close();}} catch (IOException e) {e.printStackTrace();}}}">