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.*; @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 { PayReqData payReqData = new PayReqData(); PayReqData.Feedata feedatas = new PayReqData.Feedata(); //订单编号 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 feedatas1 = new ArrayList<>(); //数量 // 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); 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() { // try { //// String s = PayUtils.affirmPost("10000001"); // //JSONObject query = PayUtils.query("1000001"); // } catch (IOException e) { // throw new RuntimeException(e); // } } }