import cn.com.jit.new_vstk.Bean.EnvelopResult; import cn.com.jit.new_vstk.Bean.SignResult; import cn.com.jit.new_vstk.Bean.VerifyResult; import cn.hutool.json.JSON; import com.alibaba.fastjson2.JSONObject; import com.gkhy.exam.pay.entity.PayReqData; import com.gkhy.exam.pay.utils.PayUtils; import com.gkhy.exam.pay.utils.ResultVo; import com.gkhy.exam.pay.utils.Sign; import com.gkhy.exam.pay.utils.SignDto; import com.google.gson.JsonObject; import com.ruoyi.common.utils.RandomUtil; import lombok.extern.log4j.Log4j2; import org.dom4j.*; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import java.io.IOException; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.util.*; @SpringBootTest(classes = TextPay.class) @ActiveProfiles("dev") @Log4j2 public class TextPay { // //@Test // public void paytext001() throws IOException{ // // for (int i = 1142; i <3001 ; i++) { // String buscode="DZ00"+i; // log.info("buscode为:"+buscode); // ResultVo paytext = paytext(buscode); // log.info("请求结果为:"+paytext.getRespcode()); // if (paytext.getRespcode().equals("BUS0000")){ // break; // } // } // } @Test public void paytext() throws IOException, DocumentException { PayReqData payReqData = new PayReqData(); PayReqData.Feedata feedatas = new PayReqData.Feedata(); //订单编号 RandomUtil.generateOrderNumber(1L, "NC") NC202502170849287181 payReqData.setOrderNo(RandomUtil.generateOrderNumber(1L, "NC")); //订单总金额 payReqData.setMoney(BigDecimal.valueOf(112)); //子订单数目 payReqData.setAmount(1); //缴费人姓名(单位填单位名称)阿克苏地区博安煤矿安全技术服务中心 payReqData.setPayerName("阿克苏地区博安煤矿安全技术服务中心"); //缴费人证件号(单位填同一信用代码)52652900789893140A payReqData.setCertNo("52652900789893140A"); //缴款人类型(1个人 2单位) payReqData.setPayerType(2); //开票单位社会信用代码12650000MB1A9612XD payReqData.setInvoiceSocialCode("11652300734487567J"); //开票人 payReqData.setHandlingPerson("姜倩"); //复核人 payReqData.setChecker("薄晓洁"); //单位编码547185129 payReqData.setEnterCode("547185129"); //订单描述(非必填) payReqData.setDesc("非煤安全作业理论考试-002002"); //订单明细 List feedatas1 = new ArrayList<>(); //数量 feedatas.setAmount(2); //业务代码 feedatas.setBusCode("DZ002002"); //单价 feedatas.setPrice(BigDecimal.valueOf(112)); // PayReqData.Feedata feedata = new PayReqData.Feedata(); // feedata.setBusCode("DZ012402"); // feedata.setAmount(1); // feedata.setPrice(BigDecimal.valueOf(103)); feedatas1.add(feedatas); // feedatas1.add(feedata); payReqData.setFeeDatas(feedatas1); log.info("请求参数:"+ JSONObject.toJSONString(payReqData)); PayUtils payUtils = new PayUtils(); ResultVo resultVo = payUtils.sendApiPost(payReqData); String jsonString = JSONObject.toJSONString(resultVo); // log.info("请求结果:"+jsonString); String fileData = resultVo.getRespdata().getFileData(); byte[] decode = Base64.getDecoder().decode(fileData); String xmlString = new String(decode, StandardCharsets.UTF_8); Document document = DocumentHelper.parseText(xmlString); log.info("票据原文为:"+document.asXML()); // Element rootElement = document.getRootElement(); // Element eInvoiceData = rootElement.element("EInvoiceData"); //// log.info("xml文件为:"+text); // SignResult sign = payUtils.sign(decode); //// log.info("签名结果为:"+ Arrays.toString(sign.getSignData())); // VerifyResult verify = payUtils.verify(decode, sign.getSignData()); // SignDto signDto = new SignDto("SM3", "Base64", new Date(), verify.getReturnData(), verify.getSerialNumber(), verify.getIssure()); // Sign sign1 = new Sign(); // Document signature = sign1.getSignature(signDto); // eInvoiceData.add(signature); // EnvelopResult envelopResult = payUtils.encryptEnvelop(document.asXML().getBytes()); // log.info("制作数字信封为:"+ Arrays.toString(envelopResult.getEnvelopData())); } @Test public void sing() throws IOException { String fileData="
CZ-EI-658302000000-521010561.0.0
新疆维吾尔自治区政府非税收入票据_电子票650101250000002038buac2465250001000165000056.002025-02-1500:00:0011650000MB1957293J新疆维吾尔自治区应急管理厅2阿克苏地区博安煤矿安全技术服务中心张三李四65000025000000017955006fba98-37ad-4499-8c2e-b2ed24d0d802新疆维吾尔自治区应急管理厅机关(行政)1762185155cd7c38f4-ba68-4dd9-94ca-c5058faaf7ed新疆维吾尔自治区财政厅-1186976973
86211900001煤矿安全作业理论考试56.00
SM3DETACH15 02 2025 15:15:15 GMT+08:00CN=应急管理厅,T=11650000MB1957293J,OU=01,L=00,L=00,ST=65,O=01,O=MOF,C=CN63562B79EB75C36DCN=Private Certificate Authority Of MOF SM2,O=MOF,C=CN
"; PayUtils payUtils = new PayUtils(); ResultVo resultVo = payUtils.uploadXml("CO202502140115634461", fileData); log.info("请求结果为:"+resultVo); } @Test public void text001() throws DocumentException { String aa = "SM3DETACH15 02 2025 13:16:17 GMT+08:00CN=应急管理厅,T=11650000MB1957293J,OU=01,L=00,L=00,ST=65,O=01,O=MOF,C=CN63562B79EB75C36DCN=Private Certificate Authority Of MOF SM2,O=MOF,C=CN"; String bb = "
CZ-EI-658302000000-521010561.0.0
新疆维吾尔自治区政府非税收入票据_电子票650101250000002038buac2465250001000165000056.002025-02-1500:00:0011650000MB1957293J新疆维吾尔自治区应急管理厅2阿克苏地区博安煤矿安全技术服务中心张三李四65000025000000017955006fba98-37ad-4499-8c2e-b2ed24d0d802新疆维吾尔自治区应急管理厅机关(行政)1762185155cd7c38f4-ba68-4dd9-94ca-c5058faaf7ed新疆维吾尔自治区财政厅-1186976973
86211900001煤矿安全作业理论考试56.00
"; Document documenta = DocumentHelper.parseText(aa); Document documentb = DocumentHelper.parseText(bb); log.info("原文为:"+documentb.asXML()); log.info("需要拼接为:"+documenta.asXML()); Element rootElement = documenta.getRootElement(); // Element signature = rootElement.element("Signature"); Element rootElement1 = documentb.getRootElement(); // Element eInvoice = rootElement1.element("EInvoice"); rootElement1.add(rootElement); log.info("拼接后位:"+documentb.asXML()); } }