ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java
@@ -8,7 +8,6 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.RequestMapping; /** * <p> @@ -30,7 +29,6 @@ * @param request * @param res */ @RequestMapping("/alipay/notify") public void notifyUrl(HttpServletRequest request, HttpServletResponse res); /////////////////////////////////////////////////////////////////////////////////////////////////// ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -62,7 +62,7 @@ @Override public R<T> getOrderAuctionBond(OrderAuctionBondDTO orderAuctionBondDTO) { log.info("getOrderAuctionBond:{}", orderAuctionBondDTO); LambdaQueryWrapper<OrderAuctionBond> wrapper = Wrappers.lambdaQuery(); if (orderAuctionBondDTO.getUserList().size()>0){ wrapper.notIn(OrderAuctionBond::getMemberId, orderAuctionBondDTO.getUserList()); @@ -76,6 +76,7 @@ wrapper1.eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo()); wrapper1.last("limit 1"); Paylog paylog = iPaylogService.getOne(wrapper1); log.info("paylog:{}", paylog); if (paylog.getPayType() == 1) {//支付宝 boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue()); if (!bo) { ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -1,5 +1,7 @@ package com.ruoyi.order.service.impl; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -515,6 +517,9 @@ return memberOrderVO; } public static void main(String[] args) { System.err.println(DateUtil.format(LocalDateTime.now(), DatePattern.NORM_DATETIME_PATTERN)); } @Override public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) { Order order = baseMapper.selectById(memberOrderDTO.getId()); @@ -858,7 +863,8 @@ Wrappers.lambdaQuery(OrderReturnRequest.class) .eq(OrderReturnRequest::getOrderId, MemberOrderList.getId()).last("limit 1")); if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) { if (StringUtils.isNotNull(orderReturnRequest) && orderReturnRequest.getStatus() != ReturnRequestStatusEnum.QX) { MemberOrderList.setStatus(orderReturnRequest.getStatus()); MemberOrderList.setRequestId(orderReturnRequest.getId()); MemberOrderList.setIsRequest(2); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -102,6 +102,8 @@ @Override public R<Map<String, Object>> getPayInfo(Long uid, Integer type, String orderNO, String openId, HttpServletRequest request) { PaymentMethodEnum paymentMethodEnum = type == 1 ? PaymentMethodEnum.ALIPAY : PaymentMethodEnum.WECHAT; Member member = memberClient.getMembeOne(uid, SecurityConstants.INNER).getData(); openId = member.getMiniOpenid(); String zfbOpenid = member.getZfbOpenid(); @@ -116,13 +118,14 @@ wrapper1.eq(OrderAuctionBond::getDelFlag,0); OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1); one1.setBoundStatus(BondStatusEnum.PAID); one1.setPaymentMethod(PaymentMethodEnum.WECHAT); one1.setPaymentMethod(paymentMethodEnum); orderAuctionBondMapper.updateById(one1); if (one1.getBond()==null||one1.getBond().compareTo(new BigDecimal(0))==0){ one1.setBoundStatus(BondStatusEnum.PAID); Map<String, Object> returnMap = new HashMap<>(); // Type 1是否需要支付 returnMap.put("Type",1); return R.ok(returnMap); } @@ -134,7 +137,7 @@ wrapper1.eq(Order::getDelFlag,0); Order page1 = OrderMapper.selectOne(wrapper1); page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED); page1.setPaymentMethod(PaymentMethodEnum.WECHAT); page1.setPaymentMethod(paymentMethodEnum); page1.setPayTime(LocalDateTime.now()); OrderMapper.updateById(page1); if (page1.getTotalAmount().compareTo(new BigDecimal(0))==0){ @@ -198,7 +201,7 @@ } } catch (Exception e) { e.printStackTrace(); log.info("获取异常", e); } return R.fail("获取异常"); } @@ -212,6 +215,7 @@ */ @Override public void notifyUrl(HttpServletRequest request, HttpServletResponse res) { log.info("=============================支付宝回调============================="); HttpServletResponse response = (HttpServletResponse) res; response.setContentType("text/html;charset=UTF-8"); PrintWriter out; @@ -324,7 +328,7 @@ log.debug("AlipayController.notifyUrl__回调逻辑代码处理异常!fail"); // 返回失败 out.println("fail"); e.printStackTrace(); log.error("AlipayController.notifyUrl__回调逻辑代码处理异常!fail", e); } // //////////////////////////////////////////////////////////////////////////////////////// } else {// 验证失败 @@ -334,7 +338,7 @@ } catch ( IOException e) { log.debug("AlipayController.notifyUrl__支付宝服务器异步通知数据处理失败!"); e.printStackTrace(); log.error("AlipayController.notifyUrl__支付宝服务器异步通知数据处理失败!", e); } } @@ -512,6 +516,7 @@ + "\", " + "\"refund_amount\":" + refund_amount + ", " + "\"refund_reason\":\"正常退款\"," + "\"out_request_no\":\"HZ01RF001\"" + "}"); AlipayTradeRefundResponse response = alipayClient.execute(request); log.info("支付宝退款response:" + response.getBody()); // 调用成功,则处理业务逻辑 if (response.isSuccess()) { return true; @@ -738,11 +743,6 @@ System.out.println("微信退款结果: " + xmlResult); return true; } public static void main(String[] args) { refundForWxpay(4, "4200002335202408022336923702", "BO24080216090001", "R123456789", 1, 1, "2"); } /** * 获取支付宝 * @@ -751,7 +751,7 @@ * @throws Exception */ private Paylog getPayLog_alipay(HttpServletRequest request) throws IOException { //////// 获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//////// //////// 获取支付宝的通知返回参数,可参考技术文档中页面跳转步通知同参数列表(以下仅供参考)//////// // 商户订单号 String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"), "UTF-8"); // 支付宝交易号 @@ -759,12 +759,12 @@ // 交易状态 String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"), "UTF-8"); // 支付者唯一Id String buyer_id = new String(request.getParameter("buyer_id").getBytes("ISO-8859-1"), "UTF-8"); // String buyer_id = new String(request.getParameter("buyer_id").getBytes("ISO-8859-1"), "UTF-8"); // 支付帐号 String buyer_email = ""; if (SinataUtil.isNotEmpty(request.getParameter("buyer_logon_id"))) { buyer_email = new String(request.getParameter("buyer_logon_id").getBytes("ISO-8859-1"), "UTF-8"); } // String buyer_email = ""; // if (SinataUtil.isNotEmpty(request.getParameter("buyer_logon_id"))) { // buyer_email = new String(request.getParameter("buyer_logon_id").getBytes("ISO-8859-1"), "UTF-8"); // } // 支付金额 String total_fee = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"), "UTF-8"); // 支付时间 @@ -774,7 +774,7 @@ Paylog paylog = new Paylog(); paylog.setOutTradeNo(out_trade_no); paylog.setPayType(1); paylog.setBuyerId(buyer_id); // paylog.setBuyerId(buyer_id); paylog.setTradeNo(trade_no); paylog.setPayMoney(Double.parseDouble(total_fee)); paylog.setState(1); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/tencent/common/Configure.java
@@ -54,8 +54,9 @@ private static String certLocalPath_2; static{//从服务器相对路径中获取 // certLocalPath_2 = Configure.class.getClassLoader().getResource("").getPath() + "com/ruoyi/order/util/tencent/common/cert_2/apiclient_cert.p12"; certLocalPath_2 = Configure.class.getClassLoader().getResource("").getPath() + "cert_2/apiclient_cert.p12"; // certLocalPath_2 = Configure.class.getClassLoader().getResource("").getPath() // + "cert_2/apiclient_cert.p12"; certLocalPath_2 = "/opt/lzlj/cert/wechat/apiclient_cert.p12"; } //HTTPS证书密码,默认密码等于商户号MCHID ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@ nacos: discovery: # 服务注册地址 server-addr: 127.0.0.1:8848 server-addr: 127.0.0.1:8888 service: ${spring.application.name} group: DEFAULT_GROUP namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2 namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab config: # 配置中心地址 server-addr: 127.0.0.1:8848 namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2 server-addr: 127.0.0.1:8888 namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab group: DEFAULT_GROUP name: ${spring.application.name} # 配置文件格式 ruoyi-modules/ruoyi-order/src/main/resources/conf/param.properties
@@ -14,8 +14,8 @@ # 支付宝回调地址 #notify_url = http://10.136.177.152:9000/order/forepart/paylog/alipay/notify #notify_url=http://221.182.45.100:9000/order/forepart/paylog/wxpay/notify notify_url=https://www.jiudinglaojiu.com/order/forepart/paylog/wxpay/notify #notify_url=http://221.182.45.100:9000/order/forepart/paylog/alipay/notify notify_url=https://www.jiudinglaojiu.com/order/forepart/paylog/alipay/notify # 签约的appid app_id = 2021004150664294