物流可视化API
2016-06-16 本文已影响0人
富阳溪西
函数设计
- url:
http://eas.nbeport.com/ecloud/rest?timestamp=2015-10-26+16%3a57%3a33&format=json&app_key=1b6b88cc-195a-416a-855c-ae5132f9253f&auto_pre_returndata=&trace=&method=nbeport.edi.logstatetrade.list&billno=HODNGB150000031&sign=8C8BA44051B3CA9F85F8BB4EE6F9D31F - timestamp:时间戳 yyyy-mm-dd hh:mm:ss
- format: 返回的格式
- app_key:帐号
- auto_pre_returndata:
- trace:
- method:nbeport.edi.logstate.list 方法名,固定值
- billno:提单号
- sign: 签名
帐号及密码
- app_key: 请联系开发人员,进行配置
- AppSecret: 请联系开发人员,进行配置
sign生成调用
- java
public static String SignTopRequest(Map<string, string> appParams, String secret)
throws IOException {
// 第一步:把字典按Key的字母顺序排序
Map<string, string> sortedParams = new TreeMap<string, string>();
if (appParams != null && appParams.size() > 0) {
sortedParams.putAll(appParams);
}
Set<entry <string, string>> paramSet = sortedParams.entrySet();
// 第二步:把所有参数名和参数值串在一起
StringBuilder query = new StringBuilder(secret);
for (Entry<string, string> param : paramSet) {
if ((!param.getKey().equals("")) && (!param.getValue().equals("")))
{
query.append(param.getKey()).append(param.getValue());
}
}
// 第三步:使用MD5加密
byte[] bytes = encryptMD5(query.toString());
// 第四步:把二进制转化为大写的十六进制
return byte2hex(bytes);
}
private static byte[] encryptMD5(String data)
throws IOException {
byte[] bytes = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
bytes = md.digest(data.getBytes("UTF-8"));
} catch (GeneralSecurityException gse) {
throw new IOException(gse);
}
return bytes;
}
private static String byte2hex(byte[] bytes) {
StringBuilder sign = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
sign.append("0");
}
sign.append(hex.toUpperCase());
}
return sign.toString();
}
- net
public static string SignApiRequest(IDictionary<string, string> parameters, string secret)
{
IDictionary<string, string> dictionary = new SortedDictionary<string, string>(parameters);
StringBuilder builder = new StringBuilder(secret);
foreach (var key in dictionary.Keys)
{
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(dictionary[key]))
{builder.Append(key).Append(dictionary[key]);}
}
byte[] buffer = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(builder.ToString()));Console.WriteLine(builder.ToString());
StringBuilder builder2 = new StringBuilder();
for (int i = 0; i < buffer.Length; i++)
{
builder2.Append(buffer[i].ToString("X2"));
}
return builder2.ToString();
}
回执节点描述
序号 | 字段名 | 中文名称 |
---|---|---|
1 | StatusGuid | GUID |
2 | VesselName | 船名 |
3 | VoyageNo | 航次 |
4 | BillNo | 提单号 |
5 | DivBillNo | 分提单号 |
6 | SatusType | 状态类型 |
7 | ContainerNo | 箱号 |
8 | YardName | 堆场 |
9 | StatusDate | 状态时间 |
10 | Pier | 码头 |
11 | PierResponse | 码头放行回执 |
12 | SealNo | 封号 |
13 | CustomsNo | 报关单号 |
14 | CargoName | 英文品名 |
15 | Pkgs | 件数 |
16 | GrossWeight | 毛重 |
17 | Measurement | 体积 |
18 | CustomsResponse | 海关预配回执 |
19 | BarCode | 条型码 |
20 | SpareDate | 备用时间字段 |
21 | Spare1 | 备用字段1 |
22 | Spare2 | 备用字段2 |
23 | Spare3 | 备用字段3 |
24 | Spare4 | 备用字段4 |
25 | Spare5 | 备用字段5 |
26 | CreateDate | 创建日期 |
27 | UpdateDate | 更新日期 |
28 | VesselCode | 船舶UN代码 |
29 | IEFlag | 进出口标记 |
30 | CtnOperator | 箱经营人 |
31 | PlaceCode | 地点代码 |
32 | Place | 地点,对应地点代码中的中文 |