diff --git a/payment-base-app/src/main/java/com/base/springcloud/bo/OrderBO.java b/payment-base-app/src/main/java/com/base/springcloud/bo/OrderBO.java index 3ca66ec..7b15216 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/bo/OrderBO.java +++ b/payment-base-app/src/main/java/com/base/springcloud/bo/OrderBO.java @@ -4,8 +4,16 @@ import com.base.springcloud.entity.Order; import com.base.springcloud.entity.SaleBill; import lombok.Data; +import java.io.Serializable; + @Data -public class OrderBO { +public class OrderBO implements Serializable { + + // 商户编号 + private String mchId; + + // 商户私钥 + private String mchPrivateKey; // 销售单据号 private String billNo; diff --git a/payment-base-app/src/main/java/com/base/springcloud/controller/PaymentController.java b/payment-base-app/src/main/java/com/base/springcloud/controller/PaymentController.java index c538d8e..a03ddea 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/controller/PaymentController.java +++ b/payment-base-app/src/main/java/com/base/springcloud/controller/PaymentController.java @@ -33,9 +33,10 @@ public class PaymentController { @ApiOperation(value = "native下单", notes = "微信native下单") @GetMapping("/nativePlaceOrder") - public ReportResult nativePlaceOrder(@RequestParam String salesBill) { + public ReportResult nativePlaceOrder(@RequestParam String salesBill,@RequestParam String mchId) { OrderBO orderBO = new OrderBO(); orderBO.setBillNo(salesBill); + orderBO.setMchId(mchId); String codeUrl = paymentService.placeOrder(orderBO); List array = new ArrayList<>(); NativePlaceOrderDTO nativePlaceOrderDTO = new NativePlaceOrderDTO(); diff --git a/payment-base-app/src/main/java/com/base/springcloud/dao/MerchantConfigMapper.java b/payment-base-app/src/main/java/com/base/springcloud/dao/MerchantConfigMapper.java index d05a28e..93f5147 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/dao/MerchantConfigMapper.java +++ b/payment-base-app/src/main/java/com/base/springcloud/dao/MerchantConfigMapper.java @@ -1,6 +1,7 @@ package com.base.springcloud.dao; import com.base.springcloud.entity.MerchantConfig; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -24,4 +25,6 @@ public interface MerchantConfigMapper { int removeMerchantConfig(String mchId); List queryMerchantConfig(MerchantConfig merchantConfig); + + MerchantConfig claimMerchantConfig(@Param("mchId") String mchId); } \ No newline at end of file diff --git a/payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java b/payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java index 1637936..e9ffd85 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java +++ b/payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java @@ -22,4 +22,6 @@ public interface OrderMapper { int updateByPrimaryKey(Order record); List queryOrder(Date date); + + int updateOrderSuccess(String orderNo); } \ No newline at end of file diff --git a/payment-base-app/src/main/java/com/base/springcloud/handle/RBSQueueHandler.java b/payment-base-app/src/main/java/com/base/springcloud/handle/RBSQueueHandler.java index 6777d2f..9f69cb0 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/handle/RBSQueueHandler.java +++ b/payment-base-app/src/main/java/com/base/springcloud/handle/RBSQueueHandler.java @@ -1,8 +1,7 @@ package com.base.springcloud.handle; -import com.base.springcloud.aspect.annotation.Rlock; +import com.base.springcloud.bo.OrderBO; import com.base.springcloud.entity.Order; -import com.base.springcloud.schedule.OrderTask; import com.base.springcloud.service.PaymentService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -10,6 +9,9 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.awt.font.OpenType; +import java.util.Optional; + @Component public class RBSQueueHandler { @@ -19,8 +21,9 @@ public class RBSQueueHandler { private PaymentService paymentService; @RabbitListener(queues = "order_queue") - public void orderInfo(Order order) { - paymentService.queryOrder(order); + public void orderInfo(OrderBO orderBO) { + logger.info("正在获取订单: {} 状态", Optional.ofNullable(orderBO.getOrder()).map(o->o.getOrderNo()).orElse("无效单据")); + paymentService.queryOrder(orderBO); } } \ No newline at end of file diff --git a/payment-base-app/src/main/java/com/base/springcloud/schedule/OrderTask.java b/payment-base-app/src/main/java/com/base/springcloud/schedule/OrderTask.java index 411a5f3..b372966 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/schedule/OrderTask.java +++ b/payment-base-app/src/main/java/com/base/springcloud/schedule/OrderTask.java @@ -17,8 +17,8 @@ public class OrderTask { @Autowired private PaymentService paymentService; - /*@Scheduled(cron = "0/10 * * * * ?") + @Scheduled(fixedDelay = 30 * 6000) public void syncOrderInfo(){ paymentService.syncOrderInfo(new Date()); - }*/ + } } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/MerchantService.java b/payment-base-app/src/main/java/com/base/springcloud/service/MerchantService.java index 6d1dadc..9f4ed5b 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/MerchantService.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/MerchantService.java @@ -1,6 +1,7 @@ package com.base.springcloud.service; import com.base.springcloud.bo.MerchantConfigBO; +import com.base.springcloud.bo.OrderBO; import java.util.List; @@ -28,4 +29,10 @@ public interface MerchantService { * 支付信息配置查询 */ List queryMerchantConfig(MerchantConfigBO merchantConfigBO); + + /** + * 获取商户支付信息配置 + * @param orderBO + */ + void claimMerchantConfig(OrderBO orderBO); } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/PaymentService.java b/payment-base-app/src/main/java/com/base/springcloud/service/PaymentService.java index 7ae2225..1b6dd92 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/PaymentService.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/PaymentService.java @@ -21,7 +21,7 @@ public interface PaymentService { /** * 订单信息同步 - * @param order + * @param orderBO */ - void queryOrder(Order order); + void queryOrder(OrderBO orderBO); } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/WecPaymentService.java b/payment-base-app/src/main/java/com/base/springcloud/service/WecPaymentService.java index f1df74d..881ddcf 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/WecPaymentService.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/WecPaymentService.java @@ -1,8 +1,21 @@ package com.base.springcloud.service; import com.base.springcloud.bo.OrderBO; +import com.base.springcloud.entity.Order; public interface WecPaymentService { + /** + * Native支付 + * @param orderBO + * @return + */ String nativePay(OrderBO orderBO); + + /** + * 查询微信订单结果 + * @param orderBO + * @return true - 成功 false - 未成功 + */ + Boolean orderResult(OrderBO orderBO); } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java b/payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java index 218901b..4319daa 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/imp/MerchantServiceImp.java @@ -1,6 +1,7 @@ package com.base.springcloud.service.imp; import com.base.springcloud.bo.MerchantConfigBO; +import com.base.springcloud.bo.OrderBO; import com.base.springcloud.dao.MerchantConfigMapper; import com.base.springcloud.entity.MerchantConfig; import com.base.springcloud.service.MerchantService; @@ -99,6 +100,20 @@ public class MerchantServiceImp implements MerchantService { return merchantConfigBOList; } + @Override + public void claimMerchantConfig(OrderBO orderBO) { + if(!Optional.ofNullable(orderBO).map(o->orderBO.getMchId()).isPresent()){ + // TODO 抛出业务异常 + return; + } + MerchantConfig merchantConfig = merchantConfigMapper.claimMerchantConfig(orderBO.getMchId()); + if(!Optional.ofNullable(merchantConfig).isPresent()){ + // TODO 抛出业务异常 + return; + } + orderBO.setMchPrivateKey(merchantConfig.getMchPrivateKey()); + } + /** * 测试文件上传 */ diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java b/payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java index 2f6a748..7eef2c4 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java @@ -28,14 +28,13 @@ public class OrderServiceImp implements OrderService { order.setCreateTime(new Date()); order.setExpireTime(new Date()); order.setTimeStamp(new Date()); - order.setGoodId("1142338242"); - order.setGoodName("maomaogongzai"); order.setOrderNo(DateUtil.getDateString(new Date(),25)); order.setOrderType("AL"); order.setRequestNo(DateUtil.getDateString(new Date(),25)); + order.setGoodName("maomaogongzai"); order.setReserved("memo"); order.setTimeStamp(new Date()); - order.setMchId("888027018000004"); + order.setMchId(orderBO.getMchId()); order.setOrderState(PaymentConstant.WAIT); order.setOrderAmount(DecimalUtil.divide(orderBO.getSaleBill().getTotalAmount(),new BigDecimal(100))); orderMapper.insert(order); @@ -53,7 +52,15 @@ public class OrderServiceImp implements OrderService { Order order = new Order(); BeanUtils.copyProperties(o,order); orderBO.setOrder(order); + orderBO.setMchId(order.getMchId()); return orderBO; }).collect(Collectors.toList()); } + + @Override + public void updateOrderSuccess(String orderNo) { + int count = orderMapper.updateOrderSuccess(orderNo); + if(count > 0) return; + // TODO 抛出业务异常 + } } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java b/payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java index 907f2b3..7bcebe5 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java @@ -3,11 +3,9 @@ package com.base.springcloud.service.imp; import com.base.springcloud.aspect.annotation.Rlock; import com.base.springcloud.bo.OrderBO; import com.base.springcloud.constant.PaymentConstant; +import com.base.springcloud.entity.MerchantConfig; import com.base.springcloud.entity.Order; -import com.base.springcloud.service.BillService; -import com.base.springcloud.service.OrderService; -import com.base.springcloud.service.PaymentService; -import com.base.springcloud.service.WecPaymentService; +import com.base.springcloud.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.AmqpTemplate; @@ -23,6 +21,9 @@ public class PaymentServiceImp implements PaymentService { Logger logger = LoggerFactory.getLogger(PaymentServiceImp.class); + @Autowired + private MerchantService merchantService; + @Autowired private OrderService orderService; @@ -42,6 +43,8 @@ public class PaymentServiceImp implements PaymentService { parameterCheck(orderBO); // 销售单据核查 billService.billCheck(orderBO); + // 查询商户支付信息配置 + merchantService.claimMerchantConfig(orderBO); // 登记订单 orderService.registerOrder(orderBO); // 请求微信生成二维码 @@ -57,28 +60,31 @@ public class PaymentServiceImp implements PaymentService { // 获取订单列表 List orderList = orderService.queryOrder(date); if(!Optional.ofNullable(orderList).isPresent()) return; - // 遍历查询第三方订单信息 for (OrderBO orderBO : orderList){ // 异步处理数据 - amqpTemplate.convertSendAndReceive(PaymentConstant.ORDER_QUEUE,orderBO.getOrder()); + amqpTemplate.convertSendAndReceive(PaymentConstant.ORDER_QUEUE,orderBO); } } /** * 订单信息查询 - * @param order + * @param orderBO */ @Override - @Rlock(prefix = PaymentConstant.ORDER_LOCK_PREFIX, suffix = "#order.orderNo",waitTime = 0,leaseTime = 60) - public void queryOrder(Order order) { - logger.info("线程 : {} 开始睡觉....",Thread.currentThread().getName()); - try { - Thread.sleep(10000); - }catch (Exception e){ - logger.info(e.getMessage()); - } - logger.info("线程 : {} 结束睡觉....",Thread.currentThread().getName()); + @Rlock(prefix = PaymentConstant.ORDER_LOCK_PREFIX, suffix = "#orderBO.order.orderNo",waitTime = 0,leaseTime = 60) + public void queryOrder(OrderBO orderBO) { + // 参数检查 + Order order = Optional.ofNullable(orderBO).map(o->orderBO.getOrder()).orElse(null); + if(!Optional.ofNullable(order).isPresent()) return; + // 获取商户支付配置信息 + merchantService.claimMerchantConfig(orderBO); + // 查询微信订单结果 + Boolean state = wecPaymentService.orderResult(orderBO); + if(!state) return; + // 同步订单状态 + String orderNo = order.getOrderNo(); + orderService.updateOrderSuccess(orderNo); } // 参数检查 diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/imp/WecPaymentServiceImp.java b/payment-base-app/src/main/java/com/base/springcloud/service/imp/WecPaymentServiceImp.java index 7d25753..33d2bde 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/imp/WecPaymentServiceImp.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/imp/WecPaymentServiceImp.java @@ -14,17 +14,25 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import java.io.IOException; + @Service public class WecPaymentServiceImp implements WecPaymentService { Logger logger = LoggerFactory.getLogger(WecPaymentServiceImp.class); + /** + * Native支付 + * + * @param orderBO + * @return + */ @Override public String nativePay(OrderBO orderBO) { String res = ""; HiiposmUtil util = new HiiposmUtil(); - String merchantId = "888027018000004"; - String privateKey = "308204bc020100300d06092a864886f70d0101010500048204a6308204a202010002820101008fe86bc46878d127d0bd59b8d0ed81b5dd4066a8af2729ade7df76d4022ee9535de274d0a786e654bea82c6a6450c64cc428a79326583accbcf7724d38b5895dcd9eb542a8078ba0d9d8d2a69bd5890966aacdb6daea387b52ed662c2fef8932bd0f69155d7c1729d9da004920508dd4be72e78a0c33cbf847d3c4bce0cf2e42190e5166fea223544c1c0d7dc0fda964adc1deffce527fb75c13c802c37dd6071f071c220a8f6036c72fae13bf78c02b7fdefdc771298f05b85e341ec7e521d9d7b2d535bc16bae35c6d7b8abc670c5da46b4404ea164915d6cdd102c170c542839b0a386ce9eb46a741a11678320271d53253087c5ca44ac7851507cef9787902030100010282010061d895eda55b005b22029cce9cbfe041d77dc24f4f48417e8cf9d3c1b2fa528aec7add1241d5e72617bc20f6f5de35f65c298846f4fb687f6cbc926b0ef3dfc277dc4142611d4042cddc2ede3976a7064d583526ef11f1f5681d222b492c850c8a9fbfc3571cd8630c4cbd84fb03ca6bac52543bf8afff2f8126ebcdc0cd1d95abc8bc00d310240b16a3afbc5d0ac88a60005a2a0f149246513a4b2375142f2f41d1f84db337e834d65c76ff54291e0d45051be37dceaa7468f4becf3547905dba823ee9b5b449e24c97ea2fd74387a121018e595592735ae7234563bf1c204cd5e523169fb80838f6154c046b01f847f22e348d09210ad737ba1a9b43fbf50102818100de15a6916a0244c461305c8d8f0bd1df1f82279f9b4ae70966f61fc25d310825ccef8305146500f16154674be702f3d5f4ec639e9e03fd040c925ea1df18b19c1255f996045cd5dcd68dc0782b7760f9ce3f4279972a1a49f3a4cb8f0e2d2f2f5698667004cfdeca84335665870d95c2ab625074b73afba33aab1481be5c04dd02818100a5e278390b618190c686e8bbe91a29c2e8e9cdbea419b2725f5f7e59378f6c25fada22ff1cec891d250b75511c866c54f93d3ca05bba9e65eff2f29aab14a7ea3e83c73d9c876eaf6fc11504c5093ada16de6dac3588369ffb11f8154582d4ce3310d5fefdd94a6f18090a4a68e0ef85d4a8898b6b26e020986d0fef81a2ea4d02818036dce65f39ef0189f9f0768cc9efc392f937b00e2fd0db2e696f17fd6e0434dd11b9818679b951f84f71086ba9d002e8b22ecb955db7e283638fad2d13ee07c2648d34b128b6be6665e272cfbcfd2ac9cb77b9364c6fac3ae4a3ab5dd5c4b7c95bfd1e21422f0ffcbb97eb19fdb90f6c1de695b59fa6448fd86877126e3251490281807934611d6518687fecdeb3fc60d49200ed07b022046b163c853d13e7823614122818ec8b348a0ba134e90b5e29967a5f18014b63ebc20e6c73073386194cad67f5277a13a5643b568a342cf460375f3dec89b6dea5fa91d710aecf725368c5aea8173c14e54bb81c36169ce343805ee28d405bc777925f1ed1e0964d2c8e69dd02818073bfa2ced7b2911b5c8f9534bc5b0de8c13afeaf6d60ce5f0e6d3f732eb23a0c98586cbade606181b6c78825605c5d4b600f89aa08624c65dd649ffb093a914afe55b39943d1e10f509c67f5e344c73deaa5a10f94154a0df705942f98d8193675addb33d841a5a09f20c388898fda30b974cb9a4a6a74d5212d11a1f394971d"; + String merchantId = orderBO.getMchId(); + String privateKey = orderBO.getMchPrivateKey(); String req_url = "https://ipos.10086.cn/cps/cmpayService"; String type = "AggregPayAmt"; String version = "1.0.0"; @@ -48,16 +56,22 @@ public class WecPaymentServiceImp implements WecPaymentService { signDate.append(version); signDate.append(DecimalUtil.stripTrailingZeros(orderBO.getSaleBill().getTotalAmount())); signDate.append(createDate); - switch (order.getOrderType()){ - case PaymentConstant.WEC : signDate.append(PaymentConstant.QRCWC); break; - case PaymentConstant.AL : signDate.append(PaymentConstant.QRCAL); break; - case PaymentConstant.CP : signDate.append(PaymentConstant.QRCCP); break; + switch (order.getOrderType()) { + case PaymentConstant.WEC: + signDate.append(PaymentConstant.QRCWC); + break; + case PaymentConstant.AL: + signDate.append(PaymentConstant.QRCAL); + break; + case PaymentConstant.CP: + signDate.append(PaymentConstant.QRCCP); + break; } signDate.append(order.getOrderNo()); signDate.append(order.getGoodName()); signDate.append(order.getReserved()); - logger.warn("signData:{}",signDate.toString()); - try{ + logger.warn("signData:{}", signDate.toString()); + try { HiCASignUtil2 rsa = new HiCASignUtil2(privateKey, "111"); StrBuilder requestParam = new StrBuilder(); requestParam.append("hmac=").append(rsa.sign(signDate.toString())); @@ -72,10 +86,16 @@ public class WecPaymentServiceImp implements WecPaymentService { requestParam.append("&amount=").append(DecimalUtil.stripTrailingZeros(orderBO.getSaleBill().getTotalAmount())); requestParam.append("&orderDate=").append(createDate); requestParam.append("&payWay="); - switch (order.getOrderType()){ - case PaymentConstant.WEC : requestParam.append(PaymentConstant.QRCWC); break; - case PaymentConstant.AL : requestParam.append(PaymentConstant.QRCAL); break; - case PaymentConstant.CP : requestParam.append(PaymentConstant.QRCCP); break; + switch (order.getOrderType()) { + case PaymentConstant.WEC: + requestParam.append(PaymentConstant.QRCWC); + break; + case PaymentConstant.AL: + requestParam.append(PaymentConstant.QRCAL); + break; + case PaymentConstant.CP: + requestParam.append(PaymentConstant.QRCCP); + break; } requestParam.append("&orderId=").append(order.getOrderNo()); requestParam.append("&productName=").append(order.getGoodName()); @@ -84,15 +104,68 @@ public class WecPaymentServiceImp implements WecPaymentService { requestParam.append("&spbillCreateIp=").append(spbillCreateIp); requestParam.append("&storeBrand=").append(storeBrand); requestParam.append("&cityBranchNm=").append(cityBranchNm); - logger.warn("requestParam:{}",requestParam.toString()); + logger.warn("requestParam:{}", requestParam.toString()); res = util.sendAndRecv(req_url, requestParam.toString(), PaymentConstant.CHARACTER_SET); logger.warn(res); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } - return StringUtils.isNotBlank(res)?util.getValue(res, "sessionId"):""; + return StringUtils.isNotBlank(res) ? util.getValue(res, "sessionId") : ""; } + /** + * 订单状态查询 + * + * @param orderBO + * @return + */ + @Override + public Boolean orderResult(OrderBO orderBO) { + Order order = orderBO.getOrder(); + String orderId = order.getOrderNo(); + String req_url = "https://ipos.10086.cn/cps/cmpayService"; + String type = "AggregQueryCPS"; + String version = "1.0.0"; + String reserved = order.getReserved(); + String signType = PaymentConstant.SIGN_TYPE; + String requestId = DateUtil.getDateString(25); + String merchantId = order.getMchId(); + String privateKey = orderBO.getMchPrivateKey(); + String characterSet = PaymentConstant.CHARACTER_SET; + StringBuilder signData = new StringBuilder(); + signData.append(merchantId); + signData.append(requestId); + signData.append(signType); + signData.append(type); + signData.append(version); + signData.append(orderId); + signData.append(reserved); + try { + StrBuilder requestParam = new StrBuilder(); + HiCASignUtil2 rsa = new HiCASignUtil2(privateKey, "111"); + requestParam.append("hmac=").append(rsa.sign(signData.toString())); + requestParam.append("&characterSet=").append(PaymentConstant.CHARACTER_SET); + requestParam.append("&merchantId=").append(merchantId); + requestParam.append("&requestId=").append(requestId); + requestParam.append("&signType=").append(signType); + requestParam.append("&type=").append(type); + requestParam.append("&version=").append(version); + requestParam.append("&orderId=").append(orderId); + requestParam.append("&reserved1=").append(reserved); + + HiiposmUtil util = new HiiposmUtil(); + String res = util.sendAndRecv(req_url, requestParam.toString(), characterSet); + if(util.getValue(res, "status").equals("SUCCESS")){ + return true; + } + return false; + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } } diff --git a/payment-base-app/src/main/java/com/base/springcloud/service/orderService.java b/payment-base-app/src/main/java/com/base/springcloud/service/orderService.java index 3b544bd..010c50e 100644 --- a/payment-base-app/src/main/java/com/base/springcloud/service/orderService.java +++ b/payment-base-app/src/main/java/com/base/springcloud/service/orderService.java @@ -13,4 +13,7 @@ public interface OrderService { // 查询订单 List queryOrder(Date date); + + // 同步订单状态 + void updateOrderSuccess(String orderNo); } diff --git a/payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml b/payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml index 3f1ad73..5608eae 100644 --- a/payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml +++ b/payment-base-app/src/main/resources/com/base/payment/mapper/MerchantConfigMapper.xml @@ -83,4 +83,15 @@ mch_id = #{mchId,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml b/payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml index e9bb2cc..86a5cf6 100644 --- a/payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml +++ b/payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml @@ -168,4 +168,10 @@ order by time_stamp desc limit 10 + + + update pay_order + set order_state = 'S' + where order_no = #{orderNo,jdbcType=VARCHAR} + \ No newline at end of file