API使用说明

一,API调用入口

用入口即调用接口(API)的请求访问该地址。开放平台提供了正式环境入口网关。

正式环境对应锐鲨线上数据,正式环境测试则直接用正式环境的入口网关、AppKey、AppSecret及锐鲨账号。

1、http 网关

正式环境:https://openapi.realshark.com/invoke

锐鲨所有api都支持get和post两种方式,建议开发时参考锐鲨提供的Demo

二,API调用参数

调用API,必须传入公共参数和api参数(目前只支持UTF-8编码)。公共参数详细介绍如下;应用参数则根据不同API 具体入参,更多请参考API 文档。这里以调用xiaodian.shop.get 为例说明(通过API 文档可看到,调用该API应用参数)

1、公共参数

app_key long 接入时申请的app_key
method String 接口名称
access_token String Oauth2.0授权获得的access_token
sign String 对 API 调用参数(除sign外)进行 md5 加密获得。参数的顺序为字母表的顺序
format String 响应格式。默认为json格式,固定
timestamp long 时间戳,使用Unix时间戳格式
sign_method String 否(MD5加密时,此参数不参与) 参数的加密方法选,当前只支持Md5
version String 否(MD5加密时,此参数不参与) API协议版本,固定值为:1.0

2、系统错误码

返回码共7位,其中前2位代表系统码,后5位代表错误码; 开放平台系统码为:00。其中0000000为特殊返回码,代表成功; 注:0000000为所有业务方共享的成功返回码,后缀为500的返回码,代表代码内部处理错误。

系统码 Api类别
00 开放平台
10 交易
11 商品
12 店铺
13 物流
14 基础类目

开放平台系统码定义

返回码 错误描述
0000000 成功
0000001 timesteamp时间误差超过5分钟
0000003 sign_method错误
0000004 sign错误
0000005 service is not existed!
0000006 param type is not correct!
0000007 param is a required type!
0000008 param is an unknown field!
0000009 lack of access authority
0000010 accessToken authority expired
0000011 accessToken not found
0000012 appKey not found
0000013 User request out of rate limit !
0000014 Total amount of interface request out of rate limit !
0000015 AppName and serviceName not null at same time!
0000016 参数对象【paramsDesc】为null!
0000017 参数【methodName】为null
0000018 参数【serviceName】为null
0000019 路由服务异常!
0000020 app status is not checked
0000021 app is not pass checked
0000022 app is not online
0007001 更新token失效
0007002 oauthCode错误
0000500 系统内部错误

物流返回码定义:

返回码 错误描述
1020001 快递单号格式不正确
1020002 订单状态不一致
1020003 添加物流信息失败,请重试
1020004 当前用户没有操作权限
1020005 退货退款中订单不允许发货
1020006 发货操作太频繁
1020007 发货物流公司黑名单,禁止使用

商品、店铺返回码定义:

返回码 错误描述
1100400 参数错误
1100401 请先进行实名认证
1101400 商品数据出错
1101403 无访问该商品权限
1101404 商品不存在或已被删除
1102400 SKU数据出错
1102404 SKU不存在或已被删除
1103404 类目不存在
1200404 请先开通店铺

订单管理返回码定义:

返回码 错误描述
1010001 参数异常
1010002 订单数据查询失败
1010003 卖家无此订单查询权限

3、应用参数

详见API说明文档

4、签名sign

调用API 时需要对请求参数(公共参数和api参数)进行签名验证,开放平台服务器也会对该请求参数进行验证是否合法,方法如下:

根据参数名称(除签名和图片)将所有请求参数按照字母ASCII值先后顺序排序:key + value .... key + value

复杂对象(object、array等)请转换成json字符串

例如:将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1,参数名和参数值链接后,得到拼装字符串bar2baz3foo1

系统支持MD5加密方式:

md5:将secret 拼接到参数字符串头、尾进行md5加密后,格式是:md5(secretkey1value1key2value2...secret)

三,API调用实例

调用API:xiaodian.shop.get ,应用参数fields 返回shop_nick ,使用系统默认MD5加密,因为各语言语法不一致,以下实例只体现逻辑。为便于说明,假设 app_key、secret、session 值均为 test。

1、输入参数为

         method=xiaodian.shop.get
         timestamp=1367819523
         format=json
         app_key=test
         v=1.0
         sign_method=md5
         session=test

2、按首字母升序排列

         app_key=test
         format=json
         method=xiaodian.shop.get
         session=test
         sign_method=md5
         timestamp=1367819523
         v=1.0

3、连接字符串

连接参数名与参数值,并在首尾加上secret,如下:

          testapp_keytestformatjsonmethodxiaodian.shop.getsessiontestsign_methodmd5timestamp1367819523v1.0test

4、生成签名 sign

          32位大写MD5值->D95ED0F5CEECC498C8AAFC1D94A28EB2

5、拼装API请求

将所有参数值转换为UTF-8编码,然后拼装,通过浏览器访问该地址,即成功调用一次接口,如下(http网关):

          https://openapi.realshark.com/invoke?sign=D95ED0F5CEECC498C8AAFC1D94A28EB2&tamp=1367819523&v=1.0&app_key=test&method=xiaodian.shop.get&format=json&session=test