Pu Zhibing
9 小时以前 b293f932d31971dfff8769f61ad39de50fd28c43
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
//package com.supersavedriving.user.modular.system.util.bank;
//
//import com.supersavedriving.user.modular.system.model.Driver;
//import com.supersavedriving.user.modular.system.util.bank.parmUtil.*;
//import org.dom4j.Document;
//import org.dom4j.DocumentException;
//import org.dom4j.DocumentHelper;
//import org.dom4j.Element;
//import org.dom4j.io.SAXReader;
//
//import java.io.ByteArrayInputStream;
//import java.math.BigDecimal;
//import java.util.*;
//
//public class BankUtil {
//    public static T21000001Response addAccount(Driver driver) {
//        /*
//         * 请求url 测试及生产环境地址请以商户接入规范中为准,demo中地址仅作参考
//         **/
////        String httpsUrl = "https://28.4.152.171:30101/dmzPubClus";
//        String httpsUrl = "https://tseb.laastg.test.citicbank.com:38443";
//
//        try {
//            //-----------  编写测试数据  (测试只需要修改其中的数据即可)------------
//            String mchntId = "J04018500000000";//商户编号,该字段联调时需替换成测试、生产环境银行侧提供的编号
//            String transCode = "21000001";//交易码
//            String reqSsn = "J10036400000000201912171513100001s300115";//e管家请求流水号,该字段在报文体中上送,需按接入规范中要求生成40位不重复流水:15位商户编号+17位时间戳+8位随机数
//            String laasSsn = "LAASJ100364201912171513100001s300115";//外联平台流水号,该字段在报文头中上送,可使用任意规则生成长度为36位的流水号,保证不重复即可。
//
//            T21000001Request request = new T21000001Request();
//            request.setTRANS_CODE(transCode);
//            request.setREQ_SSN("J04018500000000"+ SerialNumberGenerator.generateSerialNumber());
//            request.setMCHNT_ID(mchntId);
//            request.setMCHNT_USER_ID(driver.getId().toString());
//            request.setUSER_TYPE("1");
//            request.setUSER_NM(driver.getName());
//            request.setUSER_ROLE("008001");
//            request.setSIGN_TYPE("00");//签约类型
//            request.setUSER_ID_TYPE("01");
//            request.setUSER_ID_NO(driver.getIdcard());
//            request.setUSER_PHONE(driver.getPhone());
//
//            //实体对象转换为XML
//            String restr = XstreamUtils.toXml(request, request.getClass());
//
//            SAXReader reader = new SAXReader();
//            Document doc = reader.read(new ByteArrayInputStream(restr.getBytes()));
//            Element root = doc.getRootElement();
//
//            //--------加签名------
//            String sign = SignUtil.sign(Utils.sortSignInfo(root).getBytes());
//            request.setSIGN_INFO(sign);
//            restr = Constants.XML_HEAD + XstreamUtils.toXml(request, request.getClass());
//
//            //---------- 发送请求数据 ------
//            //初始化https请求参数
//            HttpsPost.initHttpsURLConnection(Constants.PASSWORD,Constants.KEYSTORE_PATH, Constants.TRUSTSTORE_PATH);
//            //发送请求获得响应数据
//            String resStr = HttpsPost.post(httpsUrl, restr, mchntId, transCode, CustomSerialNumberGenerator.generateCustomSerialNumber());
//            //把xml为转换为实体对象
//            T21000001Response resData = XstreamUtils.toBean(resStr, T21000001Response.class);
//
//            //-------- 验签 --------------
//            //获取签名信息
//            String sigStr = resData.getDATA().getSIGN_INFO();
//            //验签是否成功
//            boolean isSucc = SignUtil.verifySign(sortSignInfo(resStr).getBytes(), sigStr, Constants.PTNRTESTCER);
//            System.out.println("响应信息验签:" + (isSucc == true ? "验签成功!" : "验签失败,请检查签名!"));
//            return resData;
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//
//
//    public static T21000048Response toBank(Driver driver,BigDecimal amount) {
//        /*
//         * 请求url 测试及生产环境地址请以商户接入规范中为准,demo中地址仅作参考
//         **/
////        String httpsUrl = "https://28.4.152.171:30101/dmzPubClus";
//        String httpsUrl = "https://tseb.laastg.test.citicbank.com:38443";
//
//        try {
//            //-----------  编写测试数据  (测试只需要修改其中的数据即可)------------
//            String mchntId = "J04018500000000";//商户编号,该字段联调时需替换成测试、生产环境银行侧提供的编号
//            String transCode = "21000048";//交易码
//            T21000048Request request = new T21000048Request();
//            request.setTRANS_CODE(transCode);
//            request.setREQ_SSN("J04018500000000"+SerialNumberGenerator.generateSerialNumber());
//            request.setMCHNT_ID(mchntId);
//            request.setDEAL_TYPE("00");
//            request.setUSER_D_ID(driver.getMerchantNumber());
//            request.setUSER_D_NM(driver.getName());
//            request.setBUSS_ID(String.valueOf(UUID.randomUUID()));
//            request.setTRANS_DT(DateGenerator.generateYYYYMMDD());
//            request.setTRANS_TM(TimeGenerator.generateHHmmss());
//            request.setAMOUNT(amount);
//            request.setFUND_TP("008015");
//
//
//
//
//            //实体对象转换为XML
//            String restr = XstreamUtils.toXml(request, request.getClass());
//
//            SAXReader reader = new SAXReader();
//            Document doc = reader.read(new ByteArrayInputStream(restr.getBytes()));
//            Element root = doc.getRootElement();
//
//            //--------加签名------
//            String sign = SignUtil.sign(Utils.sortSignInfo(root).getBytes());
//            request.setSIGN_INFO(sign);
//            restr = Constants.XML_HEAD + XstreamUtils.toXml(request, request.getClass());
//
//            //---------- 发送请求数据 ------
//            //初始化https请求参数
//            HttpsPost.initHttpsURLConnection(Constants.PASSWORD,Constants.KEYSTORE_PATH, Constants.TRUSTSTORE_PATH);
//            //发送请求获得响应数据
//            String resStr = HttpsPost.post(httpsUrl, restr, mchntId, transCode, CustomSerialNumberGenerator.generateCustomSerialNumber());
//            //把xml为转换为实体对象
//            T21000048Response resData = XstreamUtils.toBean(resStr, T21000048Response.class);
//
//            //-------- 验签 --------------
//            //获取签名信息
//            String sigStr = resData.getDATA().getSIGN_INFO();
//            //验签是否成功
//            boolean isSucc = SignUtil.verifySign(sortSignInfo(resStr).getBytes(), sigStr, Constants.PTNRTESTCER);
//            System.out.println("响应信息验签:" + (isSucc == true ? "验签成功!" : "验签失败,请检查签名!"));
//            return resData;
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//
//    public static T21000047Response bankTo(Driver driver,BigDecimal amount) {
//        /*
//         * 请求url 测试及生产环境地址请以商户接入规范中为准,demo中地址仅作参考
//         **/
////        String httpsUrl = "https://28.4.152.171:30101/dmzPubClus";
//        String httpsUrl = "https://tseb.laastg.test.citicbank.com:38443";
//
//        try {
//            //-----------  编写测试数据  (测试只需要修改其中的数据即可)------------
//            String mchntId = "J04018500000000";//商户编号,该字段联调时需替换成测试、生产环境银行侧提供的编号
//            String transCode = "21000047";//交易码
//            T21000047Request request = new T21000047Request();
//            request.setTRANS_CODE(transCode);
//            request.setREQ_SSN("J04018500000000"+SerialNumberGenerator.generateSerialNumber());
//            request.setMCHNT_ID(mchntId);
//            request.setDEAL_TYPE("00");
//            request.setUSER_C_ID(driver.getMerchantNumber());
//            request.setUSER_C_NM(driver.getName());
//            request.setBUSS_ID(String.valueOf(UUID.randomUUID()));
//            request.setTRANS_DT(DateGenerator.generateYYYYMMDD());
//            request.setTRANS_TM(TimeGenerator.generateHHmmss());
//            request.setAMOUNT(amount);
//            request.setFUND_TP("008015");
//
//
//
//
//            //实体对象转换为XML
//            String restr = XstreamUtils.toXml(request, request.getClass());
//
//            SAXReader reader = new SAXReader();
//            Document doc = reader.read(new ByteArrayInputStream(restr.getBytes()));
//            Element root = doc.getRootElement();
//
//            //--------加签名------
//            String sign = SignUtil.sign(Utils.sortSignInfo(root).getBytes());
//            request.setSIGN_INFO(sign);
//            restr = Constants.XML_HEAD + XstreamUtils.toXml(request, request.getClass());
//
//            //---------- 发送请求数据 ------
//            //初始化https请求参数
//            HttpsPost.initHttpsURLConnection(Constants.PASSWORD,Constants.KEYSTORE_PATH, Constants.TRUSTSTORE_PATH);
//            //发送请求获得响应数据
//            String resStr = HttpsPost.post(httpsUrl, restr, mchntId, transCode, CustomSerialNumberGenerator.generateCustomSerialNumber());
//            //把xml为转换为实体对象
//            T21000047Response resData = XstreamUtils.toBean(resStr, T21000047Response.class);
//
//            //-------- 验签 --------------
//            //获取签名信息
//            String sigStr = resData.getDATA().getSIGN_INFO();
//            //验签是否成功
//            boolean isSucc = SignUtil.verifySign(sortSignInfo(resStr).getBytes(), sigStr, Constants.PTNRTESTCER);
//            System.out.println("响应信息验签:" + (isSucc == true ? "验签成功!" : "验签失败,请检查签名!"));
//            return resData;
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
//
//    public static String sortSignInfo(String xml){
//        List<String> signList = new ArrayList<String>();
//        try {
//            Document document = DocumentHelper.parseText(xml);
//            Element dataElement = document.getRootElement().element("DATA");
//            for(Iterator iter = dataElement.elementIterator(); iter.hasNext();){
//                Element element = (Element)iter.next();
//                if(element.getName().equals("SIGN_INFO")){
//                    element.detach();
//                    continue;
//                }
//                String tagName = element.getText();
//                signList.add(tagName);
//            }
//        } catch (DocumentException e) {
//            e.printStackTrace();
//        }
//        //排序
//        Collections.sort(signList);
//
//        StringBuffer signInfo = new StringBuffer();
//
//        for (String sign  : signList)
//        {
//            signInfo = signInfo.append(sign);
//        }
//        //若验证银行侧响应报文签名未通过,可与银行侧对比该串内容是否一致
//        System.out.println("响应字段排序串:"+signInfo);
//        return signInfo.toString();
//    }
//
//
//}