Jelajahi Sumber

代码提交

linbl 1 tahun lalu
induk
melakukan
db1f074508

+ 8 - 9
sp-core/sp-api/src/main/java/com/pj/api/client/payment_server/PaymentServerInterface.java

@@ -4,7 +4,6 @@ import com.pj.api.FeignInterceptor;
 import com.pj.api.consts.FeignConsts;
 import com.pj.api.dto.*;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.*;
 
 @FeignClient(
@@ -17,36 +16,36 @@ public interface PaymentServerInterface {
     /**
      * 结关报文接口
      */
-    @GetMapping("/payment/rpc/sendCXB001")
-    void sendCXB001(PaymentDto paymentDto);
+    @PostMapping("/payment/rpc/sendCXB001")
+    void sendCXB001(@RequestBody PaymentDto paymentDto);
 
     /**
      * 调用银行扣款接口
      */
-    @GetMapping("/payment/rpc/sendSXB010")
-    void sendSXB010(@SpringQueryMap PaymentDto paymentDto);
+    @PostMapping("/payment/rpc/sendSXB010")
+    void sendSXB010(@RequestBody PaymentDto paymentDto);
 
     /**
      * 调用银行退款接口
      */
-    @GetMapping("/payment/rpc/sendSXB013")
+    @PostMapping("/payment/rpc/sendSXB013")
     void sendSXB013(@RequestBody PaymentDto paymentDto);
 
     /**
      * 调用通关车批信息同步接口(车出一级市场时)
      */
-    @GetMapping("/payment/rpc/sendSXB023")
+    @PostMapping("/payment/rpc/sendSXB023")
     void sendSXB023(@RequestBody PaymentDto paymentDto);
 
     /**
      * 订单扣款(无手续费)
      */
-    @GetMapping("/payment/rpc/sendMKT006_NoCommission")
+    @PostMapping("/payment/rpc/sendMKT006_NoCommission")
     void sendMKT006_NoCommission(@RequestBody PaymentTwoDto paymentTwoDto);
 
     /**
      * 订单扣款(+手续费)
      */
-    @GetMapping("/payment/rpc/sendMKT006")
+    @PostMapping("/payment/rpc/sendMKT006")
     void sendMKT006(@RequestBody PaymentTwoDto paymentTwoDto);
 }

+ 18 - 0
sp-core/sp-api/src/main/java/com/pj/api/dto/PaymentDto.java

@@ -192,7 +192,9 @@ public class PaymentDto implements Serializable {
 	//商铺所属人证件类型(01:身份证 02 护照)
 	private String ownerIdtype;
 	//商铺所属人证件号
+	private String shopSccd;
 	//商铺国籍
+	private String nationality;
 	//商铺银行账号
 	private String bankAccount;
 	//商铺开户行代码
@@ -596,4 +598,20 @@ public class PaymentDto implements Serializable {
 	public void setTotalPrice(BigDecimal totalPrice) {
 		this.totalPrice = totalPrice;
 	}
+
+	public String getShopSccd() {
+		return shopSccd;
+	}
+
+	public void setShopSccd(String shopSccd) {
+		this.shopSccd = shopSccd;
+	}
+
+	public String getNationality() {
+		return nationality;
+	}
+
+	public void setNationality(String nationality) {
+		this.nationality = nationality;
+	}
 }

+ 3 - 0
sp-service/level-one-server/src/main/java/com/pj/tb_order/TbOrderService.java

@@ -423,6 +423,8 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         paymentDto.setBankAccount(tbShop.getBankAccount());
         paymentDto.setBank(tbShop.getBank());
         paymentDto.setOwnerTel(tbShop.getOwnerTel());
+        paymentDto.setShopSccd(tbShop.getShopSccd());
+        paymentDto.setNationality(tbShop.getNationality());
 
 
 
@@ -456,6 +458,7 @@ public class TbOrderService extends ServiceImpl<TbOrderMapper, TbOrder> implemen
         // TODO: 2023/8/28 边民发起支付申请,调用银行接口:验证边民支付信息,将货款先存入银行第三方账户,并给出回执
         PaymentDto paymentDto = this.getPaymentData(tbOrder);
         paymentServerInterface.sendSXB010(paymentDto);
+        //paymentServerInterface.sendCXB001(paymentDto);
 
        return update;
     }

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

@@ -118,7 +118,7 @@ public class BankByteTask {
 
             //银行回执——headers——获取头部字段
             if(isMKT0035 || isMKT008){//二级市场-订单回执报文-头部处理
-                String headersStr = xmlStr.substring(xmlStr.indexOf("<headers>")-9, xmlStr.indexOf("</headers>"+10));
+                String headersStr = xmlStr.substring(xmlStr.indexOf("<headers>"), xmlStr.indexOf("</headers>") + 10);
                 try {
                     // 解析XML字符串,获取Document对象
                     Document document = builder.parse(new InputSource(new StringReader(headersStr)));
@@ -184,14 +184,14 @@ public class BankByteTask {
             //银行回执——plain——获取responseDTO
             String payloadStr = xmlStr.substring(xmlStr.indexOf("<plain>")+7, xmlStr.indexOf("</plain>"));
             if(isMKT0035) {
-                payloadStr = xmlStr.substring(xmlStr.indexOf("</headers>")+10, xmlStr.indexOf("<results xsi:type="));
+                payloadStr = xmlStr.substring(xmlStr.indexOf("<plain>")+7, xmlStr.indexOf("<results xsi:type="));
                 payloadStr += "</payload>";
 
                 String resultsStr = "";
                 if(StringUtils.containsIgnoreCase(xmlStr,"MKT003")) {
-                    resultsStr = xmlStr.substring(xmlStr.indexOf("<results xsi:type=\"vendorDTO\">"), xmlStr.indexOf("</payload>"));
+                    resultsStr = xmlStr.substring(xmlStr.indexOf("<results xsi:type=\"vendorDTO\""), xmlStr.indexOf("</payload>"));
                 } else if(StringUtils.containsIgnoreCase(xmlStr,"MKT005")) {
-                    resultsStr = xmlStr.substring(xmlStr.indexOf("<results xsi:type=\"vendeeDTO\">"), xmlStr.indexOf("</payload>"));
+                    resultsStr = xmlStr.substring(xmlStr.indexOf("<results xsi:type=\"vendeeDTO\""), xmlStr.indexOf("</payload>"));
                 }
 
                 try {
@@ -346,14 +346,14 @@ public class BankByteTask {
 
             //(二级市场)卖家账号认证回执——101/102/110	110(未签约)
             else if(bankInfo.getOperation().equalsIgnoreCase("MKT003")) {
-                if(bankInfo.getCode().equals("110")) {
-                    //未签约
+                if(bankInfo.getCode().equals("101")) {
+                    result = true;
                 }
             }
             //(二级市场)买家账号认证回执——103/104/110	110(未签约)
             else if(bankInfo.getOperation().equalsIgnoreCase("MKT005")) {
-                if(bankInfo.getCode().equals("110")) {
-                    //未签约
+                if(bankInfo.getCode().equals("101")) {
+                    result = true;
                 }
             }
             //(二级市场)订单扣款            001:扣款订单    002:退款订单    003:打款订单

+ 13 - 18
sp-service/payment-server/src/main/java/com/pj/task/PaymentController.java

@@ -2,13 +2,8 @@ package com.pj.task;
 
 import com.pj.api.dto.PaymentDto;
 import com.pj.api.dto.PaymentTwoDto;
-import com.pj.dto.DataDto;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.openfeign.SpringQueryMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/payment/")
@@ -22,33 +17,33 @@ public class PaymentController {
         paymentService.testSend();
     }
 
-    @GetMapping("rpc/sendCXB001")
-    public void sendCXB001(PaymentDto paymentDto) {
+    @PostMapping("rpc/sendCXB001")
+    public void sendCXB001(@RequestBody PaymentDto paymentDto) {
         paymentService.sendCXB001(paymentDto);
     }
 
-    @GetMapping("rpc/sendSXB010")
-    public void sendSXB010(@SpringQueryMap PaymentDto paymentDto) {
+    @PostMapping("rpc/sendSXB010")
+    public void sendSXB010(@RequestBody PaymentDto paymentDto) {
         paymentService.sendSXB010(paymentDto);
     }
 
-    @GetMapping("rpc/sendSXB013")
-    public void sendSXB013(PaymentDto paymentDto) {
+    @PostMapping("rpc/sendSXB013")
+    public void sendSXB013(@RequestBody PaymentDto paymentDto) {
         paymentService.sendSXB013(paymentDto);
     }
 
-    @GetMapping("rpc/sendSXB023")
-    public void sendSXB023(PaymentDto paymentDto) {
+    @PostMapping("rpc/sendSXB023")
+    public void sendSXB023(@RequestBody PaymentDto paymentDto) {
         paymentService.sendSXB023(paymentDto);
     }
 
-    @GetMapping("rpc/sendMKT006_NoCommission")
-    public void sendMKT006_NoCommission(PaymentTwoDto paymentTwoDto) {
+    @PostMapping("rpc/sendMKT006_NoCommission")
+    public void sendMKT006_NoCommission(@RequestBody PaymentTwoDto paymentTwoDto) {
         paymentService.sendMKT006_NoCommission(paymentTwoDto);
     }
 
-    @GetMapping("rpc/sendMKT006")
-    public void sendMKT006(PaymentTwoDto paymentTwoDto) {
+    @PostMapping("rpc/sendMKT006")
+    public void sendMKT006(@RequestBody PaymentTwoDto paymentTwoDto) {
         paymentService.sendMKT006(paymentTwoDto);
     }
 }

+ 36 - 37
sp-service/payment-server/src/main/java/com/pj/task/PaymentService.java

@@ -25,31 +25,22 @@ public class PaymentService {
     private MessageSender messageSender;
 
     public static void main(String[] args) {
-        /*PaymentDto paymentDto = new PaymentDto();
-        paymentDto.setFieldCode("860301");
-        paymentDto.setTradeNo("YYSC2024010810081234");
-        paymentDto.setCurrCode("人民币");
-        paymentDto.setResalePrice(BigDecimal.valueOf(9000));
-        paymentDto.setTotalPrice(BigDecimal.valueOf(8000));
-        paymentDto.setDeclTime("2024-01-08 10:11:55 876");
-        paymentDto.setBorderName("李李");
-        paymentDto.setBorderidno("450806200912093764");
-        paymentDto.setBankCode("6216632688888888888");
-        paymentDto.setBorderTel("19155552244");
-        paymentDto.setOwnerName("迈克");
-        paymentDto.setOwnerIdtype("身份证");
-        paymentDto.setBankAccount("621677777777777777");
-        paymentDto.setOwnerTel("15266666666");
-        paymentDto.setGoodsName("大闸蟹");
-        paymentDto.setGoodsUnit("吨");
-        paymentDto.setDeclPrice(10000.0);
-        paymentDto.setBuyQty(1.0);
-        paymentDto.setGrossWt(0.8);
-        String xml = MessageXML.SXB010(paymentDto);
-        String bodyStr = xml.substring(xml.indexOf("<payload xsi:type=\"orderDTO\">")+29, xml.indexOf("</payload>"));
-        String decrypt = CryptoUtil.decrypt(bodyStr);
-        String xmlStr = xml.replace(bodyStr, decrypt);
-        System.out.println(xmlStr);*/
+        String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+                "\n" +
+                "<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"\" title=\"二级市场\">  \n" +
+                "  <headers> \n" +
+                "    <item key=\"sn\">7E97BB9B-4DDE-4D6B-B639-FC053368DD76</item>  \n" +
+                "    <item key=\"date\">2024-08-26 15:15:18 285</item>  \n" +
+                "    <item key=\"organization\">861501</item>  \n" +
+                "    <item key=\"bankCode\">MRCCCNB1</item>  \n" +
+                "    <item key=\"operation\">MKT003</item> \n" +
+                "  </headers>  \n" +
+                "  <plain><payload xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"responseDTO\" code=\"101\" source=\"d6d0ded2-eb2e-4c8d-bdf0-e04b43474057\" note=\"卖家账户认证通过\">\n" +
+                "    <results xsi:type=\"vendorDTO\" name=\"李正红\" papersType=\"0001\" papersNo=\"532325199706101330\" nationality=\"0001\" accountNo=\"6223692312105747\" bankCode=\"MRCCCNB1\" tel=\"13658831034\"/>\n" +
+                "  </payload></plain>\n" +
+                "</message>\n";
+        String headersStr = xmlStr.substring(xmlStr.indexOf("<headers>"), xmlStr.indexOf("</headers>")+10);
+        System.out.println(headersStr);
         /*String a = CryptoUtil.decrypt("106940ae6c70fcdf19561fad1fb9bdca6e4bccacc84a7a474dd8316fdcfc2b060d7b8ea013bba87694e8c9425632e662497b189a117d441db59f602cb11f3726b50f646da8e2cbbd90a4427da1a63c079294584f8348ae744bea8c871faaf868b1a0bcbe861ef6a4656caada1349710c7a5cea48c90bac115ee62fbff5a7fa8d7d20c5c4e2833d3cf018d3d4aaeb5283f355e82078b42e9623b517f601bd30709e95a73c2c25ac30b142346620abf6b6525b5b0ba411725140d311346b0162fb9bb88d6721d3f4f74d4c22c28ae5e069d5");
         String b = CryptoUtil.decrypt("102efe99a286571fb3f88605063f5cdc8eafa83ea7e148db3ae1bb324a9e2e24a427ea1c51be27bcc8fc747f63cf01cd62887e16de38c135cd7eff69f760abab9f07f7565a963bd19de79d6bb9511385970020de2373df36927332a6efe4b2aed3dcf0dab450210ec0af36e85ada754eb157664e1a152a66725eeafcd60349afb0df99e8d828cf97bba1f7592f06c504f51bb5bb1b1ca2ac70d9d6199e1c9a5667a9a55988daa1f7b6c6b9bd09a4ab3c77ed1236424aba3df4b97d6ba41fed733d096de1fb286550ee7cb5c0fcf275a3a9aa16b0e99be93d7945a89e464bfba97b");
         String c = CryptoUtil.decrypt("107d621b69cad5beabb4aaffd465d16a29dea25e85b52a8c8eba4097d863d4ffe6768ec045afa6bc9ef65c315197f2b7fd427df5588ff34b5ef032353a9bf6e23e4be43b44343a2ea49215d95b7aca0cc4629be31a024b9f48a7debb7332fe54aca0fe3830e42c17026a46567307ae54e53595ce58b7b08526245373da86100af832947550467121f31f39943dc505576798f974d259fbe9f095d95389cf28d383bdbe7a26bee3bec8004f8c159ed3e888a5cd2f5fe83df9392c553b583d2a2ab1e210e1638aaebf5accba0f1b11670e713655f84bfb7c660f8908e053cc7a1b986954f181223d4ee8344201ea44ef1769fb1d4f809e100613e45dc57c312a9642");
@@ -73,10 +64,13 @@ public class PaymentService {
         paymentDto.setBorderidno("532325199706101330");
         paymentDto.setBankCode("6223692312105747");
         paymentDto.setBorderTel("13658831034");
-        paymentDto.setOwnerName("云南跨境贸易公司");
+        paymentDto.setOwnerName("云南君弛网络服务有限公司");
         paymentDto.setOwnerIdtype("0008");
-        paymentDto.setBankAccount("0100028613124012");
-        paymentDto.setOwnerTel("15195882701");
+        paymentDto.setBankAccount("0600055566570132");
+        paymentDto.setOwnerTel("18117247531");
+        //paymentDto.setShopSccd("78509372-8");
+        //paymentDto.setNationality("0001");
+        paymentDto.setBank("MRCCCNB1");
 
         paymentDto.setCodeTs("001");
         paymentDto.setGoodsName("大闸蟹");
@@ -84,9 +78,10 @@ public class PaymentService {
         paymentDto.setDeclPrice(10000.0);
         paymentDto.setBuyQty(1.0);
         paymentDto.setGrossWt(0.8);
+        paymentDto.setTotalPrice(BigDecimal.valueOf(0));
 
-        paymentDto.setOrderNo("YYSC20240112181255");
-        paymentDto.setResalePrice(BigDecimal.valueOf(8150));
+        paymentDto.setOrderNo("EJSCDD2408261611120098");
+        paymentDto.setResalePrice(BigDecimal.valueOf(8450.05));
         paymentDto.setPcName("云南跨境贸易公司");
         paymentDto.setBusinessLicense("12312312-3");
         paymentDto.setPcBankAccount("0100028613124012");
@@ -94,20 +89,24 @@ public class PaymentService {
 
         List<CompanyDto> companyDtoList = new ArrayList<>();
         CompanyDto companyDto = new CompanyDto();
-        companyDto.setName("云南跨境贸易公司");
-        companyDto.setUsci("12312312-3");
-        companyDto.setBankAccount("0100028613124012");
-        companyDto.setContact("15195882701");
+        companyDto.setName("云南君弛网络服务有限公司");
+        companyDto.setUsci("78509372-8");
+        companyDto.setBankAccount("0600055566570132");
+        companyDto.setContact("18117247531");
         companyDto.setChargesPrice(BigDecimal.valueOf(150));
         companyDtoList.add(companyDto);
         paymentDto.setCompanyDtoList(companyDtoList);
 
-        paymentDto.setVoyageNo("111");//车辆批号
-        paymentDto.setVeNo("云A12345");//车牌号
+        PaymentDto paymentDto1 = new PaymentDto();
+        paymentDto1.setVoyageNo("111");//车辆批号
+        paymentDto1.setVeNo("云A12345");//车牌号
+        paymentDto1.setTradeNo("YYSC20240112171255");
+        paymentDto1.setFieldCode("861501");
+        //String xml = MessageXML.SXB023(paymentDto1);
         //String xml = MessageXML.SXB013(paymentDto);
         //String xml = MessageXML.MKT006_NoCommission(paymentDto);
         String xml = MessageXML.MKT007_NoCommission(paymentDto);
-
+        //String xml = MessageXML.MKT004(paymentDto);
         /*String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                 "\n" +
                 "<message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"\" title=\"一级市场\">  \n" +