diff --git a/pluss-api-page/czg.jar b/pluss-api-page/czg.jar index 3290800..9eb9b42 100644 Binary files a/pluss-api-page/czg.jar and b/pluss-api-page/czg.jar differ diff --git a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantOrder.java b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantOrder.java index 6b98c89..09cb267 100644 --- a/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantOrder.java +++ b/pluss-model-bundle/src/main/java/cn/pluss/platform/entity/MerchantOrder.java @@ -47,6 +47,8 @@ public class MerchantOrder { @TableId(type = IdType.AUTO) private Long id; + + private String appletsAppid; private String orderNumber; private String userImg; private String nickName; diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java index 144925d..3c98c2c 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/klk/service/LkLPayServiceImpl.java @@ -3,7 +3,6 @@ package cn.pluss.platform.klk.service; import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.constants.Constant; -import cn.pluss.platform.device.MercOrderNewService; import cn.pluss.platform.dto.MemberScanPayDTO; import cn.pluss.platform.dto.MerChantOrderDTO; import cn.pluss.platform.entity.*; @@ -16,7 +15,6 @@ import cn.pluss.platform.merchantOrder.MerchantOrderService; import cn.pluss.platform.pay.PayService; import cn.pluss.platform.util.DateUtils; import cn.pluss.platform.util.ParametersUtil; -import cn.pluss.platform.util.SnowFlakeUtil; import cn.pluss.platform.util.StringUtil; import cn.pluss.platform.ys.YsConfig; import com.alibaba.fastjson.JSON; @@ -27,11 +25,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; -import springfox.documentation.spring.web.json.Json; import javax.annotation.Resource; -import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Date; import java.util.HashMap; @@ -86,7 +81,7 @@ public class LkLPayServiceImpl implements PayService { "\t\"req_data\": {\n" + "\t\t\"acc_busi_fields\": {\n" + "\t\t\t\"user_id\": \""+order.getMercUserId()+"\",\n" + - "\t\t\t\"sub_appid\": \""+ParametersUtil.APPLETS_APPID+"\"\n" + + "\t\t\t\"sub_appid\": \""+order.getAppletsAppid()+"\"\n" + "\t\t},\n" + "\t\t\"account_type\": \""+account_type+"\",\n" + "\t\t\"location_info\": {\n" + @@ -268,7 +263,15 @@ public class LkLPayServiceImpl implements PayService { String req_time = DateUtils.getSdfTimes(); - Long order_amt = changeY2F(order.getPayReturnAmount().doubleValue()); + + Long order_amt = 0L; + if(ObjectUtil.isNotEmpty(order.getPayReturnAmount())){ + order_amt= changeY2F(order.getPayReturnAmount().doubleValue()); + } else if(StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ){ + order_amt= changeY2F(order.getRefundAmt().doubleValue()); + } else { + order_amt= changeY2F(order.getConsumeFee().doubleValue()); + } String refundNo = "LKLR" + StringUtil.getBillno(); diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java index 8743372..0962a9e 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/merchantOrder/impl/MerchantOrderServiceImpl.java @@ -1811,20 +1811,21 @@ public class MerchantOrderServiceImpl extends ServiceImpl apiRefund(JSONObject params) { - checkRefundCommonParam(params); + + Optional.ofNullable(params.getString("method")).orElseThrow(() -> new MsgException("请求接口名称method不能为空!")); String method = params.getString("method"); JSONObject result = new JSONObject(); switch (method){ case "syb.refund.pay": + checkRefundCommonParam(params); MsgException.checkBlank(params.getString("mercOrderNo"),"原交易商户交易订单号不能为空!"); MsgException.checkBlank(params.getString("notifyUrl"),"异步通知地址不能为空!"); MsgException.checkBlank(params.getString("refundAmt"),"退款金额不能为空"); @@ -1016,7 +1025,10 @@ public class ApiPayServiceImpl implements ApiPayService { }else if (channel.getChannel() == 4) { JSONObject result = ysPayOldService.tradePay(order, channel,merchant); return assemblePayRresultParam(result, order); - }else{ + }else if(channel.getChannel()==5){ + JSONObject result =lklPayService.tradePay(order,channel,merchant); + return assemblePayRresultParam(result, order); + }else { MsgException.throwException("未知通道"); } return null; diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/refundOrder/impl/MerchantRefundOrderServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/refundOrder/impl/MerchantRefundOrderServiceImpl.java index 64f9dfe..16bfdb2 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/refundOrder/impl/MerchantRefundOrderServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/refundOrder/impl/MerchantRefundOrderServiceImpl.java @@ -167,7 +167,7 @@ public class MerchantRefundOrderServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper().eq("mercRefundNo",mercRefundNo); + QueryWrapper queryWrapper = new QueryWrapper().eq("refundNo",mercRefundNo); MerchantRefundOrder refundOrder = baseMapper.selectOne(queryWrapper); MsgException.checkNull(refundOrder,"退款单号有误!"); if(!"1".equals(refundOrder.getStatus())){ diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/ryx/pay/impl/RyxPayServiceimpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/ryx/pay/impl/RyxPayServiceimpl.java index 9d008fc..7b014c4 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/ryx/pay/impl/RyxPayServiceimpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/ryx/pay/impl/RyxPayServiceimpl.java @@ -1,6 +1,7 @@ package cn.pluss.platform.ryx.pay.impl; +import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.constants.Constant; import cn.pluss.platform.dto.MemberScanPayDTO; @@ -292,7 +293,13 @@ public class RyxPayServiceimpl implements RyxPayService { reqData.put("merchantCode",mchNo); reqData.put("oriReqDate",DateUtils.formatDateDefault(order.getCreateDt(),"yyyyMMdd")); reqData.put("oriReqMsgId",order.getOrderNumber()); - reqData.put("refundAmount",StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ? order.getPayReturnAmount() : order.getConsumeFee()); + if(ObjectUtil.isNotEmpty(order.getPayReturnAmount())){ + reqData.put("refundAmount", order.getPayReturnAmount()); + }else if(StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ){ + reqData.put("refundAmount", order.getRefundAmt()); + } else { + reqData.put("refundAmount", order.getConsumeFee()); + } reqData.put("refundReason",order.getRemark()); JSONObject respMap = ryxService.analysisCommonPayParams(RyxConfig.refundUrl,RyxConfig.barCodePayRefund,reqData); log.info("==============>【瑞银信】交易订单退款接口,退款返回参数报文解析成功:{}<==================",respMap); diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/sxf/pay/impl/SxfPayServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/sxf/pay/impl/SxfPayServiceImpl.java index 60b7892..159a75d 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/sxf/pay/impl/SxfPayServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/sxf/pay/impl/SxfPayServiceImpl.java @@ -1,5 +1,6 @@ package cn.pluss.platform.sxf.pay.impl; +import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.channel.MerchantAuditService; import cn.pluss.platform.config.ParameterConfig; @@ -279,7 +280,15 @@ public class SxfPayServiceImpl implements SxfPayService { reqRefundData.put("ordNo", refundNo); reqRefundData.put("mno", mchNo);//随行付测试商户号 reqRefundData.put("origOrderNo", order.getOrderNumber()); - reqRefundData.put("amt", StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ? order.getPayReturnAmount() : order.getConsumeFee()); + + if(ObjectUtil.isNotEmpty(order.getPayReturnAmount())){ + reqRefundData.put("amt", order.getPayReturnAmount()); + }else if(StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ){ + reqRefundData.put("amt", order.getRefundAmt()); + } else { + reqRefundData.put("amt", order.getConsumeFee()); + } + reqRefundData.put("notifyUrl", ParametersUtil.domain + "/wap/notify/sxfCallBack"); if (StringUtil.isNotEmpty(order.getRemark())) { reqRefundData.put("refundReason", order.getRemark()); @@ -501,7 +510,7 @@ public class SxfPayServiceImpl implements SxfPayService { if (!(StringUtil.isNotEmpty(order.getScanType()) && "01".equals(order.getScanType()))) { if (("9".equals(order.getOrderType()) || "3".equals(order.getOrderType()) || "10".equals(order.getOrderType())) && "WECHAT".equals(reqData.getString("payType"))) { - String defaultSupAppId = ParametersUtil.APPLETS_APPID; + String defaultSupAppId = order.getAppletsAppid(); if (StringUtil.isNotEmpty(merchant.getSubAppId())) { defaultSupAppId = merchant.getSubAppId(); } diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayOldServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayOldServiceImpl.java index eeccd09..7378478 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayOldServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayOldServiceImpl.java @@ -1,6 +1,7 @@ package cn.pluss.platform.ys.pay; +import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.constants.Constant; import cn.pluss.platform.device.MercOrderNewService; @@ -349,7 +350,13 @@ public class YsPayOldServiceImpl extends YsPayServiceImpl{ reqData.put("out_trade_no",order.getOrderNumber()); reqData.put("shopdate",DateUtils.formatDateDefault(new Date(),"yyyyMMdd")); reqData.put("trade_no",order.getTransNo()); - reqData.put("refund_amount",StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ? order.getRefundAmt() : order.getConsumeFee()); + if(ObjectUtil.isNotEmpty(order.getPayReturnAmount())){ + reqData.put("refundAmount", order.getPayReturnAmount()); + }else if(StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ){ + reqData.put("refundAmount", order.getRefundAmt()); + } else { + reqData.put("refundAmount", order.getConsumeFee()); + } reqData.put("refund_reason",StringUtil.isEmpty(order.getRemark()) ? "申请退款" : order.getRemark()); reqData.put("out_request_no",refundNo); diff --git a/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayServiceImpl.java b/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayServiceImpl.java index 7762172..de7f7f2 100644 --- a/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayServiceImpl.java +++ b/pluss-service-bundle/src/main/java/cn/pluss/platform/ys/pay/YsPayServiceImpl.java @@ -1,5 +1,6 @@ package cn.pluss.platform.ys.pay; +import cn.hutool.core.util.ObjectUtil; import cn.pluss.platform.api.ResultCode; import cn.pluss.platform.channel.MakeMoneyService; import cn.pluss.platform.constants.Constant; @@ -206,13 +207,22 @@ public class YsPayServiceImpl implements PayService { Map result = new HashMap<>(4); JSONObject reqData = new JSONObject(); - Double amt = order.getPayReturnAmount().setScale(2).doubleValue(); + BigDecimal amt =BigDecimal.ZERO; + if(ObjectUtil.isNotEmpty(order.getPayReturnAmount())){ + amt= order.getPayReturnAmount(); + } else if(StringUtil.isNotEmpty(order.getRefundType()) && order.getRefundType() == 2 ){ + amt=order.getRefundAmt(); + }else { + amt= new BigDecimal(order.getConsumeFee()); + } + + String refundNo = "YSR"+StringUtil.getBillno(); reqData.put("merchantNo",mchNo); reqData.put("origMerchantOrderNo",order.getOrderNumber()); - reqData.put("origAmount",amt); + reqData.put("origAmount",amt.setScale(2,BigDecimal.ROUND_DOWN)); reqData.put("refundOrderNo",refundNo); - reqData.put("refundAmount",amt); + reqData.put("refundAmount",amt.setScale(2,BigDecimal.ROUND_DOWN)); JSONObject respones = ysService.requestApi(ysConfig.REFUND_PAY, reqData, YsService.TYPE_PAY);