From 2635d30e61cf7ffec015c830da761416604c9518 Mon Sep 17 00:00:00 2001 From: “djh” <“3298565835@qq.com”> Date: 星期五, 14 二月 2025 15:53:17 +0800 Subject: [PATCH] 煤矿缴费修改 --- exam-system/src/test/java/TextPay.java | 102 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 84 insertions(+), 18 deletions(-) diff --git a/exam-system/src/test/java/TextPay.java b/exam-system/src/test/java/TextPay.java index 3d46294..5d2608f 100644 --- a/exam-system/src/test/java/TextPay.java +++ b/exam-system/src/test/java/TextPay.java @@ -1,21 +1,48 @@ +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.Element; 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.util.ArrayList; -import java.util.List; +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 @@ -25,32 +52,71 @@ PayReqData payReqData = new PayReqData(); PayReqData.Feedata feedatas = new PayReqData.Feedata(); - payReqData.setDesc("安全技术考试考务费_煤矿安全作业-001504"); - payReqData.setOrderNo(RandomUtil.generateOrderNumber(1L, "CO")); - payReqData.setMoney(BigDecimal.valueOf(103)); - payReqData.setAmount(1); - payReqData.setPayerName("测试"); - payReqData.setCertNo("411381199801093991"); - payReqData.setPayerType(1); - payReqData.setInvoiceSocialCode("11650000MB1957293J"); - payReqData.setHandlingPerson("张三"); - payReqData.setChecker("李四"); - payReqData.setEnterCode("680534083"); + //订单编号 + payReqData.setOrderNo("CO202502140115634461"); + //订单总金额 + payReqData.setMoney(BigDecimal.valueOf(56)); + //子订单数目 + payReqData.setAmount(1); + //缴费人姓名(单位填单位名称)阿克苏地区博安煤矿安全技术服务中心 + payReqData.setPayerName("阿克苏地区博安煤矿安全技术服务中心"); + //缴费人证件号(单位填同一信用代码)52652900789893140A + payReqData.setCertNo("52652900789893140A"); + //缴款人类型(1个人 2单位) + payReqData.setPayerType(2); + //开票单位社会信用代码12650000MB1A9612XD + payReqData.setInvoiceSocialCode("11650000MB1957293J"); + //开票人 + payReqData.setHandlingPerson("张三"); + //复核人 + payReqData.setChecker("李四"); + //单位编码547185129 + payReqData.setEnterCode("547185129"); + //订单描述(非必填) + payReqData.setDesc("煤矿安全作业理论考试-002002"); + //订单明细 List<PayReqData.Feedata> feedatas1 = new ArrayList<>(); - feedatas.setAmount(1); - feedatas.setBusCode("DZ001504"); - feedatas.setPrice(BigDecimal.valueOf(103)); - feedatas1.add(feedatas); + //数量 +// feedatas.setAmount(1); +// //业务代码 +// feedatas.setBusCode("DZ12401"); +// //单价 +// feedatas.setPrice(BigDecimal.valueOf(56)); + PayReqData.Feedata feedata = new PayReqData.Feedata(); + feedata.setBusCode("DZ002002"); + feedata.setAmount(1); + feedata.setPrice(BigDecimal.valueOf(56)); +// feedatas1.add(feedatas); + feedatas1.add(feedata); payReqData.setFeeDatas(feedatas1); + log.info("请求参数:"+ JSONObject.toJSONString(payReqData)); PayUtils payUtils = new PayUtils(); ResultVo resultVo = payUtils.sendApiPost(payReqData); - System.out.printf("请求结果:" + resultVo); + String jsonString = JSONObject.toJSONString(resultVo); + log.info("请求结果:"+jsonString); + String fileData = resultVo.getRespdata().getFileData(); + byte[] decode = Base64.getDecoder().decode(fileData); + SignResult sign = payUtils.sign(decode); + log.info("签名结果为:"+ Arrays.toString(sign.getSignData())); + VerifyResult verify = payUtils.verify(decode, new String(sign.getSignData())); + SignDto signDto = new SignDto("SM3", "Base64", new Date(), verify.getReturnData(), verify.getSerialNumber(), verify.getIssure()); + Sign sign1 = new Sign(); + Element signature = sign1.getSignature(signDto); + EnvelopResult envelopResult = payUtils.encryptEnvelop(String.valueOf(signature)); + log.info("制作数字信封为:"+ Arrays.toString(envelopResult.getEnvelopData())); } +// @Test +// public void sing(){ +// PayUtils payUtils = new PayUtils(); +// SignResult sign = payUtils.sign("aaaaaabbbbbb"); +// log.info(sign); +// } + @Test public void text001() { -- Gitblit v1.9.2