11111
4.1.1 获取Ticket
|
1
2
3
4
5
|
String url = "***";String postString = "{ \"appKey\": \"***\", \"appSecurity\": \"***\", \"accessType\": \"2\"}";String result = PostData (url, postString); |
POST JSON示例:
|
1
|
{"appKey": "***","appSecurity": "***","accessType": "2"} |
返回JSON示例:
|
1
2
3
4
5
6
7
8
9
10
11
|
{ "status": { "success": true, "errorCode": null, "message": null }, "data": { "expireTime": 7200, "accessToken": "6b30a440a9c426e27de13f63f4170fc0" }} |
4.1.2 查询汽车票结算明细
|
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
|
String url = "***"; // 请求链接 String sign = "9488373060c8483a3ef6333353fdc7fe"; // sign OkHttpClient okHttpClient = new OkHttpClient(); // OkHttpClient对象 JSONObject jsonObject = new JSONObject(); JSONObject jsObject = new JSONObject(); jsObject.put("appKey", "******"); jsObject.put("accessToken", "*****"); // token jsonObject.put("authInfo", jsObject); jsonObject.put("apiName", "QueryBusOrderSettlementService"); JSONObject contentJson = new JSONObject(); jsonObject.put("requestContent", contentJson); RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8") , jsonObject.toJSONString()); Request request = new Request.Builder().url(url).addHeader("sign", sign).post(requestBody).build(); // 请求 okHttpClient.newCall(request).enqueue(new Callback() {// 回调 public void onResponse(Call call, Response response) throws IOException { System.out.println(response.body().string());//成功后的回调 } public void onFailure(Call call, IOException e) { System.out.println(e.getMessage());//失败后的回调 } }); |
POST JSON示例:
|
1
2
3
4
5
6
7
8
9
10
11
|
{ "authInfo":{ "appKey":"******", "accessToken":"******" }, "apiName":"QueryBusOrderSettlementService", "requestContent":{ "orderID":null,"recordIDList":[],"accountID":null,"payType":"","startTime":"2019-09-04","endTime":"2019-09-30","isCompensation":true,"batchNo":"","pageIndex":1,"pageSize":null } } |
返回JSON示例:
|
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
|
{ "data": { "count": 22, "busOrderAccountSettlementList": [ { "accountID": 21831, "busSettlementOrderAndDetailEntity": [ { "busTicketSettlementEntity": { "recordID": 86, "orderID": 3072441711, "passengerName": "胡明明", "trip": "上海浦东机场->苏州", "ticketFee": 90.0, "serviceFee": 10.1, "apiServiceFee": 0.0, "refundTicketFee": 0.0, "realAmount": 100.1, "accountID": 21831, "accCheckID": -1, "subAccCheckID": -1 } ] } ] }, "status": { "errorCode": 0, "message": "返回成功", "success": true }} |
4.1.3 生成sign示例代码
|
1
2
3
4
5
6
7
|
{"authInfo":{"appKey":"obk_shanglv_001","accessToken":"bb95b4e23655dac8cd8e8eee57a0595e"},"apiName":"QueryBusOrderSettlementService","requestContent":{"orderID":null,"recordIDList":[],"accountID":null,"payType":"","startTime":"2019-09-04","endTime":"2019-09-30","isCompensation":true,"batchNo":"","pageIndex":1,"pageSize":null}} String accessToken = "5d2d9c8307195796400005a"; HmacSHA256 hmac = new HmacSHA256(); byte[] signBytes = hmac.digest(body, accessToken, Charset.forName(CommonConsts.UTF_8)); String selfSign = Encoding.hexEncoding(signBytes); System.out.println(selfSign); |
签名工具类
|
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
|
public byte[] digest(String msg, String encryptKey, Charset charset) throws NoSuchAlgorithmException, InvalidKeyException { byte[] key = encryptKey.getBytes(charset); // 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKey secretKey = new SecretKeySpec(key, "HmacSHA256"); // 生成一个指定 Mac 算法 的 Mac 对象 Mac mac = Mac.getInstance("HmacSHA256"); // 用给定密钥初始化 Mac 对象 mac.init(secretKey); byte[] text = msg.getBytes(charset); // 完成 Mac 操作 return mac.doFinal(text); } /** * <p> * 16进制编码摘要串 * </p> * * @param bytes * 未编码的摘要串 * @return 摘要 @ */ public static String hexEncoding(byte[] bytes) { // 使用16进制编码对摘要串进行编码 if (bytes == null) { throw new IllegalArgumentException("Argument b ( byte array ) is null! "); } StringBuffer hs = new StringBuffer(); for (int i = 0; i < bytes.length; i++){ String tmp = Integer.toHexString(0xff & bytes[i]); if (tmp.length() < 2) { hs.append("0"); } hs.append(tmp); } return hs.toString().toUpperCase(); } |
浙公网安备 33010602011771号