开放平台以HTTP和HTTPS两种协议对外提供服务,客户端采用POST方式,将接口参数发送到接口地址,实现接口服务调用。
开放平台接口地址为:
http://open.sipop.cn/dataplatpro/api/route
准备工作
第三方接入平台的开发者,在调用开放平台的应用接口之前,必须先获得appKey(应用标识)和appSecret(应用私钥),获得的方式可以通过在数据开放平台申请成为开发者,然后在我的应用模块中创建应用,系统自动就会为每个应用分配相应的appKey和appSecret。
注:appSecret是用户私钥,是用户认证和传输数据防篡改的重要数据,用户需要妥善保管,避免泄漏。
appSecret用户私钥可在我的应用模块中应用列表点击“查看”按钮便可查询得到。
调用方式说明
调用任何一个应用接口都必须传递参数,以下是调用接口的必传参数的说明:
参数名称 类型 是否必填 备注 appKey String 是 在数据开放平台创建应用时,为每个应用分配的appKey。 method String 是 应用接口名称,具体接口名称详见“应用API接口说明”章节。 param String 是 调用业务接口时的输入参数,格式为json串,不同接口的输入参数的json串格式要求,详见“应用API接口说明”章节。 timestamp String 是 时间戳,格式为yyyy-mm-dd HH:mm:ss,例如:2018-01-09 13:52:03。 sign String 是 验证签名串,用于身份验证及防篡改,采用MD5加密参数获得,详见“签名sign算法”章节。 v String 是 当前接口版本号,固定值 1.0。
调用API 时需要对请求参数进行签名验证,服务器也会对该请求参数进行验证是否合法的。方法如下:
sign:签名串,将参数param、timestamp、 appSecret,拼接成一个字符串。再加上密钥,MD5生成16位小写签名串。将timestamp 参数拼接到param 头部、appSecret 拼接到param参数字符串尾部md5加密后,格式是示例:MD5(timestamp + param +appSecret)。
无特殊说明的情况下,系统中的API调用均会返回一个的json对象,该对象都会包含以下几个公共参数,公共参数说明如下:
参数名称 类型 是否必填 备注 result Boolean 是 true表示接口调用成功,false 表示调用失败。 code String 是 响应状态码,1000表示成功,非1000表示失败,详见“响应状态码说明”章节。 msg String 否 操作结果提示或错误信息。 total Int 否 符合当前查询条件的总记录数。 count Int 否 当前查询出来结果的总记录数 data Object 是 API接口调用返回的对象。
无特殊说明的情况下,系统中的API调用均会返回一个的json对象,该对象都会包含以下几个公共参数,公共参数说明如下:
编码 说明 1000 成功 1001 appKey参数不能为空或者该应用ID不存在 1002 method参数不能为空或者服务不存在 1003 timestamp参数不能为空或者时间格式不正确 1004 sign参数不能为空或者签名串不正确 1005 v参数不能为空或无法识别的版本号 1006 服务未授权 1007 服务已过期 1008 达到流量限制 1009 接口调用参数不正确 9998 服务器正忙,请稍后再试 9999 未知其他错误,请联系服务提供方
公共参数:
appKey = "12345678"
method = "patentIndex.queryKeywordPage"
timestamp = "2018-01-01 12:00:00"
v = "1.0"
业务参数:
{
"p_category":"01",
"pageSize":10,
"pageNum":1
}
param= "{ \"p_category\":\"01\", \"pageSize\":10, \"pageNum\":1 }"
签名参数:
假设该appKey对应的appSecret为"8e731299c371ad9a5787dbf424ff41f0",根据timestamp + param
+appSecret 拼接出来的字符串为"2018-01-01 12:00:00{ \"p_category\":\"01\", \"pageSize\":10, \"pageNum\":1 }8e731299c371ad9a5787dbf424ff41f0"
根据上述字符串进行md5加密,获取的sign值为:
sign=9e9d553e942067265069534d916ef632
拼接的HTTP参数为:
appKey="12345678"&method="patentIndex.queryKeywordPage"×tamp="2018-01-01
12:00:00"&v="1.0"¶m= "{ \"p_category\":\"01\", \"pageSize\":10, \"pageNum\":1 }"&sign=9e9d553e942067265069534d916ef632
将以上参数以POST方式,发送到开放平台的HTTP接口地址。