技术支持

一、用户技术接入简介


用户通过蓝鲸征信开放平台对接企业征信提供的产品和服务,蓝鲸征信开放平台定位于企业征信产品的快速安全输出以及用户对于企业征信产品的快速安全接入,通过蓝鲸征信开放平台,用户将企业征信的产品、服务整合在自己的业务流程中。

开放平台通过轻量级的HTTP服务的方式输出企业征信产品,在安全性方面,除了使用HTTPS外,对于所有的业务数据,我们提供了使用对称加密算法3DES加密加签的方式,最大化的保证了数据的安全传输。

二、接入流程


三、企业入驻


• 企业注册

浏览器访问https://icredit.jd.com/ ,点击“注册”按钮,进入注册页面。输入邮箱等信息,其中电子邮箱建议输入企业邮箱地址,然后点击下一步。


• 用户登录

用户注册后,转到登录页面 ,请选择京东钱包账号选项,输入账号和密码,密码可以选择是否使用安全控件。


• 用户认证

登录账号到 用户中心->企业信息进行实名认证 ,按要求完成企业信息和证件上传。


前往“填写资质信息”页面,选择不同证件类型,页面有所不同,我们以多证合一的营业执照(含统一社会信用代码)为例,如下图所示:


选择类型完成,点击下一步,进入信息补充页面,如下图所示:


点击下一步,进入信息确认页面,点击“确认提交”按钮,进入认证成功页面,用户在完成认证信息后,蓝鲸征信会对用户信息进行审核,审核时间一般为2个工作日,等待用户认证信息通过审核后,用户入驻环节结束。

四、技术对接


蓝鲸征信开放平台提供HTTP协议的API接口,该接口请求报文和返回结果采用JSON数据结构,开发手册中提供了Java和PHP两种语言的测试用例。用例中包含加密和验签代码,避免繁琐的加密加签解密验签的代码编写,可以帮助企业用户减少开发时间和降低开发成本,提高接口联调成功率。对于采用其他语言的企业用户,可以采用通用的HTTP调用方式,并结合对接文档传入相应请求报文和处理返回结果。

• 接口(API)简介

目前蓝鲸征信开放平台支持的接口,是系统调用类接口,主要是用户直接调用http协议的API接口。每个通过蓝鲸征信开放平台输出的蓝鲸征信产品,都会对应于一个注册在开放平台中的接口(API),这些接口中会定义业务参数的列表,系统参数列表,返回值字段列表,以及错误码列表。每个接口会有一个对应的接口文档,里面会对系统参数、业务参数、返回值和错误码都有详细的描述。

• HTTP服务报文规范

这个部分介绍了用户应该如何组装HTTP请求来调用蓝鲸征信开放平台以访问蓝鲸征信产品服务。

京东蓝鲸征信平台HTTP服务地址 https://icreditapi.jd.com/api

HTTP请求方式:

目前支持HTTP POST,由于HTTP GET对于报文长度本身的限制,不建议使用,如果有特殊需求,我们也可以提供,推荐尽量使用HTTP POST的方式。

• 请求参数规范

对于系统调用类接口,请求参数包含系统参数部分和业务参数部分,需要注意的是所有参数都需要进行编码(Base64),

如下所述:

参数名 类型 是否必须 是否蓝鲸分配 示例值 备注
orderNo String 1000000 订单编号
merchantNo String 100000 用户在企业站开户账号
version String 1.0 接口版本,目前只支持1.0
charset String UTF-8 加密加签时使用的charset
data String 加密数据串 3DES加密后的业务参数
time String 1496820351922 时间戳
checkSign String 13641148C70FD3BB1D7199B1FB059DC2 将version+charset+time +orderNo+data这几个数据连接在一起使用MD5运算(通用MD5)获得签名sign数据,data参数为加密后参数

每个接口文档中详细定义了接口业务参数列表,业务参数本身是通过系统参数data发送到服务器端的。这里主要描述这些业务参数是以什么格式组合,并拼装成了系统参数data的。假设接口A定义了两个业务参数,data1和data2,会把两个参数存在dataMap结构中,转成Json串,系统参数data和业务参数的关系为:

data=Base64.encodeBase64String(CommonUtils.encode3DES(gson.toJson(dataMap), secureKey).getBytes())

首先,对所有的业务参数存储在Map结构中,进行转Json格式,针对的Json数据会进行3DES加密,得到byte数组,然后对3DES加密后得到byte数组进行Base64编码。

•返回值规范

在接口调用成功的情况下,开放平台对返回数据进行了加密,开放平台返回值的格式如下:


        {

            "orderNo":"test112233",

            "version":"1.0",

            "charset":"UTF-8",

            "data":"加密数据",

            "checkSign":"13641148C70FD3BB1D7199B1FB059DC2",

            "time":1496820351922,

            "success":true,

            "resultCode":"SUCCESS",

            "resultMsg":"成功",

            "tradeNo":"TRD20170607032548369275453147730"

        }
    

这是一个json格式的数据,在需要解密时,使用秘钥解密即可,得到接口的业务返回数据。


        {

            "success":false,

            "resultCode":"RESULT_SERVICE_NOSTRATEGY",

            "resultMsg":"当前没有可用余量,是否直接购买!",

            "tradeNo":"TRD20170607062004913532964974910",

            "orderNo":"123123123123","version":"1.0.0",

            "charset":"UTF-8",

            "data":加密返回结果

        }
    

在接口调用失败的情况下,开放平台不会对返回数据进行加密,开放平台返回值的格式如下:

•加解密

在进行技术对接之前,蓝鲸征信会邮件发送给用户秘钥,用户只要输入秘钥即可得到所需数据。其中,对数据采用3DES的对称加密算法,得到byte数组,并对最后结果采用了base64位编码。

•入参加密

在接口调用的系统参数中, data参数需要进行3DES的加密,对data参数加密时,得到byte数组。checkSign参数是对入参进行数据的签名,并且进行MD5加密。

•返回值解密

在返回值规范中,我们提到,对于接口成功调用的情况,返回值的规范是:


        {

            "orderNo":"test112233",

            "version":"1.0",

            "charset":"UTF-8",

            "data":"加密数据",

            "checkSign":"13641148C70FD3BB1D7199B1FB059DC2",

            "time":1496820351922,

            "flag":"ABC65F55DCB53333C754C94AB6EDA2CD",

            "success":true,

            "resultCode":"SUCCESS",

            "resultMsg":"成功",

            "tradeNo":"TRD20170607032548369275453147730"

        }
        

在这里,我们需要对data字段进行3DES解密,需要用到我们邮件发送给用户的秘钥解密即可。

•业务流水凭证

业务流水凭证(orderNo)是用户(或机构)与蓝鲸征信系统产生业务交互的唯一凭证,由用户(或机构)生成作为业务入参,并且会作为与蓝鲸征信明细对账的唯一依据。具体表现为一个长度为不大于64位的字符串,仅能包含0-9A-Za-z_-等字符。

但如果使用不同的业务流水凭证(orderNo),即使其他参数相同,蓝鲸征信系统将其视为一次新的业务交互。

•接口的使用

为了提高用户的接入效率,蓝鲸征信开放平台提供了Java和PHP两种语言使用,可以避免繁琐的加密加签解密验签的代码,提高接入的效率和成功率。对于每一个接口,我们提供测试用例,包含Demo和技术文档,我们会以邮件的方式给用户发送数据的解密秘钥,利用接入的请求接口入参,就可以得到相关业务数据。