API接口说明

API接口说明

VERSION: 1.0.2844.Api.Ali.20240221.Beta

接口规范

接口规范

一、业务接入说明

在接口调用之前,请首先进行商务接洽,在确认获得授权后进行,以免浪费您宝贵的时间和精力。

flowchart LR subgraph 商务接洽 B("申\n请\n材\n料") B-->|提交| BC{审\n核} BC-->|通过| C(获\n得\n授\n权) BC-->|材料补充| B end subgraph 技术对接 C-->D("开\n始\n对\n接") D-->E("商品接口") D-->F("订单接口") D-->G("售后接口") D-->H("消息推送接口") end
二、接口请求规范

1,传参类请求

基础路径: http://supply.2844go.com:2844/scm/api

请求地址:

基础路径 + 接口名称 + ?请求参数

例:根据上级分类编号获得下一级分类列表接口

http://supply.2844go.com:2844/scm/api/CategoryByPid?pid=0

以上链接地址经过拆解可以得到

基础路径 : http://supply.2844go.com:2844/scm/api

接口名称 : CategoryByPid

请求参数 : pid=0



2,传JSON BODY类请求

基础路径: http://supply.2844go.com:2844/scm/api

请求地址:

基础路径 + 接口名称 + .json2

例:根据body正文获商品是否可售

http://supply.2844go.com:2844/scm/api/OrdersCheckPoint.json2

以上链接地址经过拆解可以得到

基础路径 : http://supply.2844go.com:2844/scm/api

接口名称 : OrdersCheckPoint

请求参数 : 无

body         :

	{
		"skuList":[
			{"sku_id":56447,"num":1},
			{"sku_id":69677,"num":1}
		],
		"consignee":{
			"province":105,
			"city":60945,
			"area":62179,
			"street":110519
		}
	}

其它接口地址类推,基础路径都一样,接口名称和参数参考具体接口说明。签名参考签名规则

三、请求头参数

http请求时header发送如下参数

	api-app-key:          000000
	api-nonce:            4b808c4ac3a011ec90e6b8cb29ae7dc5
	api-sign:             595eed69c3a011ec90e6b8cb29ae7dc5
	api-time-stamp:       1650785614246

说明

api-app-key:应用唯一key

api-nonce:每次请求的唯一编号

api-time-stamp:发送请求时的毫秒时间戳

api-sign:计算出来的签名,每次计算出来的签名有效期为1分钟

四、验证签名规则

例如:获得下级分类接口:

http://supply.2844go.com:2844/scm/api/CategoryByPid?pid=0

要求请求头信息如下:

	{
		api-app-key	:	A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
		api-nonce	:	6P5O4N3M2L1K0J9I8H7G6F5E4D3C2B1A
		api-time-stamp	:	1650876983623
		api-sign	:	481D784578BD7B186DD2F63F00D9DA16
	}

上述参数,接口APP口令(api-app-key)和接口随机码(api-nonce) 由授权后获得;接口调用时间戳(api-time-stamp)请记录系统当前时间,1分钟内有效,以毫秒为单位。

以下主要介绍接口验证签名字符串(api-sign)的计算和获得方法,分为以下八步:

第一步:

将所有请求参数的值,保存到一个数组。其它接口可能有多个,也可能没有参数,没有就是空数组。请根据实际传递的参数,而不是api文档中要求的参数。

得到数组 :[ "0" ]

第二步:

将 api-app-key 、 api-nonce 、api-time-stamp 的值 也保存到该数组。

得到数组 :[ "0", "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6", "6P5O4N3M2L1K0J9I8H7G6F5E4D3C2B1A" , "1650876983623" ]

第三步:

对数组进行排序得到 :[ "0", "1650876983623", "6P5O4N3M2L1K0J9I8H7G6F5E4D3C2B1A" , "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6" ]

第四步:

将数组按照顺序拼接成一个字符串,使用“&&”连接,得到字符串:0&&1650876983623&&6P5O4N3M2L1K0J9I8H7G6F5E4D3C2B1A&&A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6

第五步:

字符串倒置:6P5O4N3M2L1K0J9I8H7G6F5E4D3C2B1A&&A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6&&3263896780561&&0

第六步:

字符串MD5得到:43bae99ef736a5f356a94dc92cb86c6a

第七步:

再次重复第六步得到:481d784578bd7b186dd2f63f00d9da16

第八步:

最后将字符串变大写:481D784578BD7B186DD2F63F00D9DA16

在提交请求之前,将得到的api-sign写入请求头。

其它接口以此类推,如有异常情况,请参考响应头提示。

5、系统异常码
系统异常码清单
code值异常类型说明
1成功(无异常)1:表示成功;其它均为失败
0失败(无数据)表示没有数据了,一般在列表接口中出现
-1其它运行时异常系统内部异常,异常原因需参考msg描述
101网络异常网络请求超时
102网络异常异常的数据反馈
103网络异常异常的网络请求(GET、POST)
404网络异常资源没有被找到
1001安全验证异常验证签名未通过
1002安全验证异常未获得有效身份信息
1003安全验证异常未知经销商渠道(partner)
1004安全验证异常重复提交
2001业务数据异常不支持的业务类型
2101业务数据异常请求参数异常(包含 JSON Body)
2102业务数据异常系统返回了预期外的业务数据
2103业务数据异常未知货源渠道(platfromsource)
2201业务数据异常选品池满
2601业务数据异常平台余额不足
2091业务数据异常行政区划错误
3001消息异常未知的消息ID
3002消息异常未知的消息类型

立即接入