1003.登录及Api密钥说明

当开户获取用户名和密码后,才能访问相关API接口。

访问API接口不是以常规用户名密码登录的方式,而是在请求中携带用户名以及token参数的方式,token是由用户名、密码、具体的请求参数根据特定算法动态生成(该请求中不包含密码)。

访问api接口的具体方法以vin码解析为例:

上述URL可以认为由url_prefix,url_parameters,user,token等4个部分组成,上述案例中,其中:

url_prefix=http://api.17vin.com:8080

url_parameters=/?vin=LFMGJE720DS070251

user=testuser

token=b0f27b65980b01e45a81908b936aa30f

上述URL可被抽象为如下格式:

http://api.17vin.com:8080/?para1={para1}&para2={para2}....&paraN={paraN}&user={username}&token={token}

上述4个参数中,其中url_prefix与user固定不变,url_parameters为实际请求的参数,如:

注意:如果是采用post方式提交数据,在计算token的时候,也需要把相关参数先拼接成如上get形式的url_parameters形式然后再计算token

若url_parameters发生变化,则token需要重新计算, 也就是说每个不同的请求,token都将不同。token的算法如下(伪代码):

MD5(MD5(username)+MD5(password)+url_parameters)

案例:

对应上述案例URL,假设用户名为myusername,密码为mypassword,那么其token值将变为92882f5ad20cf8f3330e970af12b4214,在程序中,该值由如下伪代码算出:

MD5(MD5('myusername')+MD5('mypassword')+'/?vin=LFMGJE720DS070251')

比如在mysql数据库中,可以用以下实际程序代码得到token值:

select MD5(concat(MD5('myusername'),MD5('mypassword'),'/?vin=LFMGJE720DS070251'))

最终得到的完整URL如下:

http://api.17vin.com:8080/?vin=LFMGJE720DS070251&user=myusername&token=92882f5ad20cf8f3330e970af12b4214

(注:此url不可成功访问,仅为示意)