速达非接口文档

 

序号接口名称版本号发布日期
1下单接口1.02021-07-01
2打印面单接口1.02021-07-01
3轨迹订阅回调接口1.02021-07-01
4轨迹实时查询接口1.02021-07-01
5国际一票多件&速达非专线&海外仓头程下单接口1.02025-08-22
6三段码查询接口1.02021-07-01
7省市区查询接口1.02021-07-01
8推送集包数据接口1.02021-08-12
9第三方轨迹推送接口1.02021-08-17
10取消订单接口1.02021-08-26
11更新订单接口1.02021-08-30
12新-省市区查询接口1.02022-10-26
13新-公布价查询接口1.02022-10-26
14新-运单查询接口1.02023-08-28

1. 传输协议

协议: HTTP1.1

字符集: UTF-8

请求方式: POST

Content-Type: text/plain

2. 一般接口定义:

2.1 接口通用入参定义

参数名称类型用途
appCodeString用于调用接口时进行验证,需要找速达非对接人获取
secretKeyString用于数据加密、解密,生成签名(sgin),需要找速达非对接人获取
timestampLong由当前时间(精确到毫秒ms)生成的时间戳,
示例:北京时间:2022-04-12 17:48:07,对应的1649756887081
可参考:https://tool.lu/timestamp/,查看当前时间戳;
dataStringBody中的传参,是base64转码得到的最终报文

注:上面所有接口都需要安全校验,可参考2、3点的示例;

 

2.1.1 接口示例:

appCode:11111111

secretKey:uYMGr8eU

timestamp:1649823785567

以测试环境“轨迹实时查询接口“为例

注:appCode、secretKey 需要找速达非对接人获取

 

2.1.2 HTTP接入说明步骤:
  1. 生成sign(字段签名),签名使用MD5方式对业务data的内容进行签名,原理:md5 (timestamp+secretKey+data),详细解释如下;

    假设json格式请求参数:{"mailNoList":["47234208672823"]},secretKey:uYMGr8eU,timestamp:1649823785567,

    经过md5加密,得出sign为9a032a6baf9a6884b695382eb1d1e79f

     

  2. 将post请求中Body数据进行加密,原理:采用 DES 加密 CBC 模式 PKCS5Padding 填充及 BASE64 转码。

    其中向量字节数组为 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF 。

    • 加密前的原始数据 BODY为json格式(如下),包含data和sign,其中data为业务请求数据,需要对整个BODY加密后传输。

    BODY:

    • 加密后数据:将上述Body采用 des加密 及base64转码,原理:encryptedBODY = cipher.DES(secretKey, BODY),得到的加签后报文通过BASE64转码得到最终报文为:
  3. 调用接口:

     

2.1.3 接口验签:

服务器对时间戳和签名进行比对:

  1. 60秒之前的报文直接丢弃
  2. 不支持的appCode直接丢弃
  3. Sign不对的报文直接丢弃
  4. 请求端的IP如果不在白名单里,直接丢弃。

 

2.2 接口通用出参定义

2.2.1 接口调用

      返回参数统一放入data中,返回对象 data 为加密内容,需解密。

2.2.2 出参原则:

data解密,格式如下:

原理:采用 DES 解密 CBC 模式 PKCS5Padding 填充(cipher.DES(secretKey, data))及 BASE64 解码(默认UTF-8编码)

 

2.2.3 调用成功出参:
参数中文描述类型是否必填备注
data出参对象StringN需解密
success是否成功booleanYtrue
2.2.3 调用失败出参:
参数中文描述类型是否必填备注
error错误信息ObjectY错误对象
success是否成功booleanYfalse
2.2.4 error 对象参数:
参数中文描述类型是否必填备注
code错误代码StringY 
message错误信息StringY 

2.3 接口错误码定义

此为一般错误定义,各接口错误码会在后续接口错误码中体现,若未写则无需关注。

响应代码消息备注说明
60001request timeout请求超时
60002api unauthorized接口未授权
60003invalid appCode无效appcode
60004signature error签名错误
60005md5 encryption failedmd5加密失败
60006des initialize faileddes初始化失败
60007des encryption faileddes加密失败
60008des decryption faileddes解密失败
60009method request error方法调用失败
60010request data error数据请求错误
60011signature is null签名不能为空
10005ip address is not in the whitelistIP不在白名单内

 

3. 加解密示例

3.1 Java加解密

3.2 .NET加解密

3.3 PHP加解密

3.3.1 des工具类 des.php

 

3.3.2 加解密示例