Kaynağa Gözat

报文解密修改

linbl 1 yıl önce
ebeveyn
işleme
dff3fa6f26

+ 4 - 2
sp-service/payment-server/src/main/java/com/pj/rabbitmq/MessageReceiver.java

@@ -36,7 +36,8 @@ public class MessageReceiver {
      * 一级市场接收
      * @param message
      */
-    @RabbitListener(queues = "${mq.level-one-receive-queue}",containerFactory = "levelOneRabbitListenerContainer")
+    //@RabbitListener(queues = "${mq.level-one-receive-queue}",containerFactory = "levelOneRabbitListenerContainer")
+    @RabbitListener(queues = "${mq.level-one-send-queue}",containerFactory = "levelOneRabbitListenerContainer")
     public void receiveLevelOneMessage(String message) {
         System.out.println("Received levelone message: " + message);
         bankByteMapper.insert(new BankByte(RandomUtil.randomString(64),message, rabbitMQProperties.getLevelOneReceiveQueue(), FinishStatus.FINISH_STATUS_ZERO.getCode(),new Date()));
@@ -45,7 +46,8 @@ public class MessageReceiver {
      * 二级市场接收
      * @param message
      */
-    @RabbitListener(queues = "${mq.level-two-receive-queue}",containerFactory = "levelTwoRabbitListenerContainer")
+    //@RabbitListener(queues = "${mq.level-two-receive-queue}",containerFactory = "levelTwoRabbitListenerContainer")
+    @RabbitListener(queues = "${mq.level-two-send-queue}",containerFactory = "levelTwoRabbitListenerContainer")
     public void receiveLevelTwoMessage(String message) {
         System.out.println("Received leveltwo message: " + message);
         bankByteMapper.insert(new BankByte(RandomUtil.randomString(64),message, rabbitMQProperties.getLevelTwoReceiveQueue(), FinishStatus.FINISH_STATUS_ZERO.getCode(),new Date()));

+ 5 - 1
sp-service/payment-server/src/main/java/com/pj/task/BankByteTask.java

@@ -1,5 +1,6 @@
 package com.pj.task;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.pj.api.client.level_one_server.LevelOneServerInterface;
 import com.pj.api.client.level_two_server.LevelTwoServerInterface;
@@ -16,6 +17,7 @@ import com.pj.utils.ht.AESUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.transaction.annotation.Transactional;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
@@ -77,8 +79,10 @@ public class BankByteTask {
         //执行任务处理流程
         byteList.forEach(item -> {
             String body = item.getBody();
+            String str = body.substring(body.indexOf("<payload xsi:type=\"orderDTO\">")+29, body.indexOf("</payload>"));
             //数据解析
-            String xmlStr = CryptoUtil.decrypt(body);
+            String decrypt = CryptoUtil.decrypt(str);
+            String xmlStr = body.replace(str, decrypt);
 
             BankInfo bankInfo = new BankInfo();
             List<BankInfoCharges> chargesList = new ArrayList<>();

+ 36 - 34
sp-service/payment-server/src/main/java/com/pj/xml/MessageXML.java

@@ -19,31 +19,7 @@ public class MessageXML {
      */
     public static String SXB010(PaymentDto paymentDto) {
         String date = sdf.format(new Date());
-        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
-                "<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"\">\n" +
-                "<headers>\n" +
-                "        <item>\n" +
-                "               <key>sn</key>\n" +
-                "              <value>" + UUID.randomUUID() + "</value>\n" +
-                "       </item>\n" +
-                "        <item>\n" +
-                "               <key>date</key>\n" +
-                "              <value>" + date + "</value>\n" +
-                "       </item>\n" +
-                "        <item>\n" +
-                "               <key>organization</key>\n" +
-                "              <value>" + paymentDto.getFieldCode() + "</value>\n" +//互市点机构代码
-                "       </item>\n" +
-                "        <item>\n" +
-                "            <key>bankCode</key>\n" +
-                "            <value>ICBKCNBJYUN</value>\n" +//银行标识
-                "        </item>\n" +
-                "        <item>\n" +
-                "               <key>operation</key>\n" +
-                "              <value>SXB010</value>\n" +
-                "       </item>\n" +
-                "</headers>\n" +
-                " <payload xsi:type=\"orderDTO\">\n" +
+        String payload =
                 "         <sn>" + paymentDto.getTradeNo() + "</sn>\n" +                         //订单号
                 "         <export>false</export>\n" +                                       //出口标识	true:出口,false:进口
                 "         <organization>" + paymentDto.getFieldCode() + "</organization>\n" +   //互市点机构代码
@@ -77,9 +53,35 @@ public class MessageXML {
                 "         <quantity>" + paymentDto.getBuyQty() + "</quantity>\n" +              //商品数量
                 "         <weight>" + paymentDto.getGrossWt() + "</weight>\n" +                 //商品重量
                 "         <amount>" + paymentDto.getTotalPrice() + "</amount>\n" +              //金额
-                "</items>\n" +
+                "</items>\n";
+        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
+                "<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"\">\n" +
+                "<headers>\n" +
+                "        <item>\n" +
+                "               <key>sn</key>\n" +
+                "              <value>" + UUID.randomUUID() + "</value>\n" +
+                "       </item>\n" +
+                "        <item>\n" +
+                "               <key>date</key>\n" +
+                "              <value>" + date + "</value>\n" +
+                "       </item>\n" +
+                "        <item>\n" +
+                "               <key>organization</key>\n" +
+                "              <value>" + paymentDto.getFieldCode() + "</value>\n" +//互市点机构代码
+                "       </item>\n" +
+                "        <item>\n" +
+                "            <key>bankCode</key>\n" +
+                "            <value>ICBKCNBJYUN</value>\n" +//银行标识
+                "        </item>\n" +
+                "        <item>\n" +
+                "               <key>operation</key>\n" +
+                "              <value>SXB010</value>\n" +
+                "       </item>\n" +
+                "</headers>\n" +
+                " <payload xsi:type=\"orderDTO\">" +
+                CryptoUtil.encrypt(payload)+
                 "</payload>\n" +
-                "</message>\n";
+                "</message>";
         return xml;
     }
 
@@ -146,10 +148,10 @@ public class MessageXML {
                 "              <value>SXB013</value>\n" +
                 "       </item>\n" +
                 "</headers>\n" +
-                " <payload xsi:type=\"orderDTO\">\n" +
+                " <payload xsi:type=\"orderDTO\">" +
                 CryptoUtil.encrypt(payload)+
                 "</payload>\n" +
-                "</message>\n";
+                "</message>";
         return xml;
     }
 
@@ -185,7 +187,7 @@ public class MessageXML {
                 "              <value>SXB023</value>\n" +
                 "       </item>\n" +
                 "</headers>\n" +
-                " <payload xsi:type=\"carDTO\">\n" +
+                " <payload xsi:type=\"carDTO\">" +
                 CryptoUtil.encrypt(payload)+
                 "</payload>\n" +
                 "</message>\n";
@@ -253,10 +255,10 @@ public class MessageXML {
                         "         <operation>MKT006</operation>\n" +
                         "</headers>\n" +
 
-                        " <payload xsi:type=\"orderDTO\">\n" +
+                        " <payload xsi:type=\"orderDTO\">" +
                             CryptoUtil.encrypt(payload)+
                         "</payload>\n" +
-                        "</message>\n";
+                        "</message>";
         return xml;
     }
 
@@ -351,10 +353,10 @@ public class MessageXML {
                         "         <operation>MKT006</operation>\n" +
                         "</headers>\n" +
 
-                        " <payload xsi:type=\"orderDTO\">\n" +
+                        " <payload xsi:type=\"orderDTO\">" +
                         CryptoUtil.encrypt(payload)+
                         "</payload>\n" +
-                        "</message>\n";
+                        "</message>";
         return xml;
     }