WorldBoxAPI.java
12.4 KB
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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
package com.lhcredit.project.worldbox;
import cn.hutool.core.codec.Base64;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.lhcredit.common.utils.FileSysUtils;
import com.lhcredit.common.utils.StringUtils;
import com.lhcredit.project.business.worldboxlog.domain.Worldboxlog;
import com.lhcredit.project.business.worldboxlog.service.IWorldboxlogService;
import com.lhcredit.project.webbusiness.controller.PiccOverseasController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class WorldBoxAPI {
//测试
@Value("${hw.url}")
private String prod;
@Value("${hw.userName}")
private String userName;
@Value("${spring.profiles.active}")
private String active;
private String passWord;
@Value("${hw.passWord}")
public void setPassWord(String pwd){
if (active.equals("prod")){
passWord="cR1ui(q%e@f>]ncVbfM#{GBM);TOpY";
}else {
passWord=pwd;
}
}
static String alurl="http://101.200.76.6:8085";
// static String alurl="http://localhost:8085";
@Autowired
private IWorldboxlogService worldboxlogService;
/**
* 企业查询
* @param name
* @param countrycode
* @return
*/
public String getCompanies(String name, String countrycode,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
// String url=prod+"/v1/companies/?q="+name.trim()+"&countrycode="+countrycode;
String url=alurl+"/web/worldbox/companySearch";
long start=System.currentTimeMillis();
// String res= HttpRequest.get(url).header("authorization", authorization).execute().body();
String res= HttpRequest.post(url).form("url",prod).form("q",name.trim()).form("countrycode",countrycode).form("pwd", authorization).execute().body();
long end=System.currentTimeMillis();
System.out.println("企业查询总时间"+(end-start)+"ms");
worldboxlog.setRequest(url);
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 查询详情
* @param win
* @return
*/
public String getCompaniesInfo(String win,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
// String url=prod+"/v1/companies/"+win;
String url=alurl+"/web/worldbox/companyInformation";
long start=System.currentTimeMillis();
String res= HttpRequest.post(url).form("url",prod).form("win",win).form("pwd", authorization).execute().body();
long end=System.currentTimeMillis();
System.out.println("查询详情总时间"+(end-start)+"ms");
worldboxlog.setRequest(url);
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 产品报告
* @param win
* @return
*/
public String getProduct(String win,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
String url=prod+"/v1/product/reports/"+win;
long start=System.currentTimeMillis();
String res= HttpRequest.get(url).header("authorization", authorization).execute().body();
long end=System.currentTimeMillis();
System.out.println("产品报告总时间"+(end-start)+"ms");
worldboxlog.setRequest(url);
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 获取Companyrequestid
* @param companyName
* @param address1
* @param city
* @param countryCode
* @param currency
* @return
*/
public String getCompanyrequestid(String companyName,String address1,String city,String countryCode,String currency,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
// String url=prod+"/v1/companies/";
String newUrl=alurl+"/web/worldbox/companyRequest";
Map map=new HashMap<>();
map.put("companyName",companyName);
map.put("address1",address1);
map.put("city",city);
map.put("countryCode",countryCode);
map.put("currency",currency);
map.put("url",prod);
map.put("pwd",authorization);
long start=System.currentTimeMillis();
String res= HttpRequest.post(newUrl).body(JSON.toJSONString(map)).execute().body();
long end=System.currentTimeMillis();
System.out.println("获取Companyrequestid总时间"+(end-start)+"ms");
worldboxlog.setRequest(newUrl+":"+JSON.toJSONString(map));
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 提交订单
* @param productcode
* @param win
* @param companyrequestid
* @return
*/
public String commitOrder(String productcode,String win,String companyrequestid,String remark,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
// String url=prod+"/v1/order";
String newUrl=alurl+"/web/worldbox/commitOrder";
List lt=new ArrayList<>();
Map map=new HashMap();
Map mapItem=new HashMap<>();
mapItem.put("productcode",productcode);
if(StringUtils.isNotEmpty(win)){
mapItem.put("win",win);
}
if(StringUtils.isNotEmpty(companyrequestid)){
mapItem.put("companyrequestid",companyrequestid);
}
if(StringUtils.isNotEmpty(remark)){
mapItem.put("additionalinfo",remark);
}
mapItem.put("format","XML");
lt.add(mapItem);
map.put("orderitems",lt);
map.put("url",prod);
map.put("pwd",authorization);
long start=System.currentTimeMillis();
// String res= HttpRequest.post(url).header("authorization", authorization).body(JSON.toJSONString(map)).execute().body();
String res= HttpRequest.post(newUrl).body(JSON.toJSONString(map)).execute().body();
long end=System.currentTimeMillis();
System.out.println("提交订单总时间"+(end-start)+"ms");
worldboxlog.setRequest(newUrl+":"+JSON.toJSONString(map));
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 获取订单
* @param ordernumber
* @return
*/
public String getOrder(String ordernumber,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
// String url=prod+"/v1/order/"+ordernumber;
String newUrl=alurl+"/web/worldbox/getOrder";
long start=System.currentTimeMillis();
// String res= HttpRequest.get(url).header("authorization", authorization).execute().body();
String res= HttpRequest.post(newUrl).form("url",prod).form("pwd",authorization).form("orderNumber",ordernumber).execute().body();
long end=System.currentTimeMillis();
System.out.println("获取订单总时间"+(end-start)+"ms");
worldboxlog.setRequest(newUrl);
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 时间范围查询,最多返回100条
* @param datefrom
* @param dateto
* @return
*/
public String queryOrders(String datefrom,String dateto,Worldboxlog worldboxlog){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
String url=prod+"/v1/order/?datefrom="+datefrom+"&dateto="+dateto;
long start=System.currentTimeMillis();
String res= HttpRequest.get(url).header("authorization", authorization).execute().body();
long end=System.currentTimeMillis();
System.out.println("时间范围查询总时间"+(end-start)+"ms");
worldboxlog.setRequest(url);
worldboxlog.setResport(res);
worldboxlogService.insertWorldboxlog(worldboxlog);
return res;
}
/**
* 提交订单
* @param productcode
* @param win
* @param
* @return
*/
public String commitOrder(String productcode,String win,String remark){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
String url=prod+"/v1/order";
List lt=new ArrayList<>();
Map map=new HashMap();
Map mapItem=new HashMap<>();
mapItem.put("productcode",productcode);
if(StringUtils.isNotEmpty(win)){
mapItem.put("win",win);
}
mapItem.put("format","XML");
lt.add(mapItem);
map.put("orderitems",lt);
String res= HttpRequest.post(url).header("authorization", authorization).body(JSON.toJSONString(map)).execute().body();
return res;
}
/**
* 获取订单
* @param ordernumber
* @return
*/
public String getOrder(String ordernumber){
String base64Str=Base64.encode((userName+":"+passWord).getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
String url=prod+"/v1/order/"+ordernumber;
String res= HttpRequest.get(url).header("authorization", authorization).execute().body();
return res;
}
public static void main(String[] args) throws IOException {
// String s="XigmzmvrCEm9fhuJ502IdbTe0k2hnIxX:275A31449CAB7";
// String encode = Base64.encode(s);
// System.err.println(encode);
// String authorization="Basic "+encode;
// System.out.println(WorldBoxAPI.getCompanies("Worldbox","CH"));
// System.out.println(WorldBoxAPI.getCompaniesInfo("CH0000163067"));
// System.out.println(WorldBoxAPI.getProduct("CH0000163067"));
// System.out.println(WorldBoxAPI.getCompanyrequestid("Worldbox AG","Breitackerstrasse 1","Zollikon","CH","USD"));
// System.out.println(WorldBoxAPI.commitOrder("DLF150","CH0000163067",""));
// System.out.println(WorldBoxAPI.getOrder("4757371254"));
// 0902080088,8689745768,6886842480,9801647084,7045654937,5283420183
// String str= WorldBoxAPI.getOrder("9710936788");
// JSONObject json=JSONObject.parseObject(str);
// JSONArray array=json.getJSONArray("orderitems");
// String base64Str=array.getJSONObject(0).getString("binary");
// 解码Base64字符串
// byte[] decodedBytes = Base64.decode(base64Str);
// FileOutputStream out=new FileOutputStream("F:\\xml\\9710936788.xml");
// out.write(decodedBytes);
// 输出解码后的字节数组(可选,用于验证)
// System.out.println("Decoded bytes:");
// for (byte b : decodedBytes) {
// System.out.format("%02x ", b); // 以十六进制形式打印每个字节,便于查看
// }
// System.out.println(); // 换行
//JP0000029596,
// System.err.println(commitOrder("REO125","JP0000029596"));
// String token="XigmzmvrCEm9fhuJ502IdbTeOk2hnIxX:275A31449CAB7";
// String base64Str=Base64.encode(token.getBytes(StandardCharsets.UTF_8));
// System.out.println(base64Str);
// String base64Str=Base64.encode(("R%lj<ZjGStH$zhr"+":"+"cR1ui(q%e@f>]ncVbfM#{GBM);TOpY").getBytes(StandardCharsets.UTF_8));
String base64Str=Base64.encode(("XigmzmvrCEm9fhuJ502IdbTeOk2hnIxX"+":"+"275A31449CAB7").getBytes(StandardCharsets.UTF_8));
String authorization="Basic "+base64Str;
System.out.println(authorization);
}
}