教育训练处考试制证系统后端
“djh”
2025-02-14 2635d30e61cf7ffec015c830da761416604c9518
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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<PayReqData.Feedata> 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);
//       }
    }
 
 
}