- 书链通开放平台的 API 是基于 HTTP 协议来调用的。
一、调用流程
填充参数 > 生成签名 > 拼装 HTTP 请求 > 发起 HTTP 请求 > 获得 HTTP 响应 > 解析 JSON 结果
二、调用地址
书链通开放平台目前提测试环境及正式环境给开发者,API 调用地址为如下:
三、调用方式
HTTP 请求方式:POST
HTTP 请求头需指定:Content-Type: application/json
四、公共参数
目前需指定的公共参数如下:
参数名称 | 参数类型 | 示例值 | 参数描述 |
app_key | String | 34847930940934540 | |
api_method | String | common.test | 调用的 api_method |
api_version | String | 1.0 | 调用的 api_method 对应的版本 |
timestamp | String | 2021-01-18 18:18:18 | 时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为 GMT+8,例如:2021-01-20 18:18:18, 服务端允许客户端最大时间误差为 10 分钟 |
v | String | 1 | 协议版本,当前版本为 1 |
sign | String | 根据下面的介绍进行签名计算 | 输入参数签名结果 |
sign_type | String | md5 | 目前暂时只支持md5加密 |
biz_param | JSON | {“cid”:”12″,”page”:1} | 标准 JSON 类型,里面是业务参数列表,按照参数名的字典序排序,参考每个接口的参数列表 |
五、签名算法
为了防止 API 在调用过程中被黑客恶意篡改,调用任何一个 API 都需要携带签名;服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
书链通目前支持的签名算法为 MD5 , 计算 sign 的过程如下:
- 将 biz_param 序列化为 JSON 字符串,注意序列化结果需要按照键的字典序进行排序,如果存在嵌套参数,则嵌套的对象的所有字段也需要按照 key 的字典序进行排序,建议使用 fastjson 进行序列化。
- 将所有请求参数和 app_secret 一起按照字典顺序排列。
- 将所有参数名和参数值进行拼装,参数名与参数值之间使用 = 分隔,参数对之间使用 & 分隔。
- 上述步骤获得的待加密字符串,使用 MD5 签名算法后,得到 sign 值。
- 注意:接口请求参数中不需要 app_secret,只用来计算 sign 值。
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class Test {
@Test
public void sign() {
JSONObject bizParams = new JSONObject();
bizParams.put("page", "1");
bizParams.put("cid", "13");
Map<String, Object> paramMap = new TreeMap<>();
paramMap.put("app_key", "88888888");
paramMap.put("api_method", "common.test");
paramMap.put("api_version", "1.0");
paramMap.put("biz_param", bizParams);
paramMap.put("timestamp", "2023-08-17 10:30:00");
paramMap.put("v", "1");
paramMap.put("sign_type", "md5");
paramMap.put("app_secret", "88888888");
String sourceToSign = paramMap.entrySet().stream().map(entry ->
entry.getKey() + "=" + (entry.getValue() instanceof JSONObject ?
JSON.toJSONString(entry.getValue(), SerializerFeature.MapSortField) : entry.getValue())
).collect(Collectors.joining("&"));
paramMap.put("sign", MD5Util.MD5(sourceToSign));
//拼接后字符串:api_method=common.test&api_version=1.0&app_key=88888888&app_secret=88888888&biz_param={"cid":"13","page":"1"}&sign_type=md5×tamp=2023-08-17 10:30:00&v=1
//sign值:1DAA8E792C443C7BBD68260D15082177
}
}
六、响应结果
字段 | 类型 | 名称 | 说明 |
code | int | 状态码 | 0:请求成功 |
message | string | 说明 | |
request_id | string | 请求id | |
data | object 或 List<object> | 数据 |
七、注意事项
- 开放接口中所有的请求和响应数据编码均为 utf-8 编码。
- 开放接口中所有的 时间 相关字段都用 yyyy-MM-dd HH:mm:ss 格式进行转换。
- 开放接口中所有的 金额 相关字段都是以 分 为单位。
- 开放接口中所有的 重量 相关字段都是以 克 为单位。
- 开放接口中所有查询列表相关的接口,响应接口的data都是Page<T>对象。Page<T>结构如下
参数名称 | 参数类型 | 参数描述 |
total_pages | 总页数 | |
current_page | 当前页 | |
total_records | 总数 | |
page_data | List<T> |
- todo。。
八、开放接口
序号 | 名词 | 解释 |
1 | tid | 书链通单号(书链通推送给ERP的单号) |
2 | oid | 商品子单号(每一条商品记录会对应一条子单号) |
3 | source_tid | 电商平台订单号(仅密文平台存在,如:淘宝、京东、拼多多、抖店、快手) |
4 | source_oid | 电商平台商品单号 |
用户
分销商授权信息查询(暂不提供)
用途:用于供应商在ERP内授权到书链通对接;
api_method | api_version |
user.get.authInfo | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
返回参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
物流
获取运费模板
用途:运费模板根据商品来设置,设置后可通过商品和收货地址自动算出应收运费,并展示在订单中,运费会计入账单结算;
公共参数:
api_method | api_version |
logistics.get.list.freightTemplate | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
name | string | 否 | 模版1 | 运费模板名称,支持模糊搜索 |
current_page | int | 是 | 分页,第几页,从1开始 | |
page_size | int | 是 | 每页条数,默认20,最大 100 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<FreightTemplate> |
FreightTemplate结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
id | long | 模板id | |
name | string | 模板名称 | |
delivery_conf | string | 配送配置;[{“area”: “配送区域,需重新定义,如:0,0,1,0,1”, “firstItem”: “首件”, “fare”: “运费”, “continuation”: “续件”, “renew”: “续费”}] | |
gmt_modified | string | 更新时间 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"delivery_conf":"[{\"areas\":\"默认运费(中国)\",\"continuation\":1000,\"defineAreaList\":[{\"code\":\"0\",\"name\":\"默认运费(中国)\"}],\"fare\":0,\"firstItem\":1000,\"renew\":0}]",
"gmt_modified":"2023-07-19 14:15:37",
"id":10243,
"name":"包邮"
}
],
"total_pages":1,
"total_records":2
},
"request_id":"05df07091fcc4401ae17692a161eb0c8"
}
获取快递公司列表
用途:快递公司获取后与第三方服务做映射,支持订单发货、同步物流信息等;
公共参数:
api_method | api_version |
logistics.get.list.expressCompany | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
current_page | int | 是 | 分页,第几页,从1开始 | |
page_size | int | 是 | 每页条数,默认20,最大 100 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<GetListExpressCompanyRespData> |
GetListExpressCompanyRespData结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
id | long | 7 | 物流公司id |
name | string | 圆通快递 | 物流公司名字 |
code | string | yuantong | 物流公司code |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"code":"ST",
"id":51,
"name":"申通快递"
}
],
"total_pages":2,
"total_records":39
},
"request_id":"7f119fa2d4064b9996abb8362522c718"
}
分销
获取分销说明模板
用途: 商品售卖说明,每个商品在录入时都需要选择分销说明,该说明会展示给分销商;
公共参数:
api_method | api_version |
distribute.get.list.distributeDescTemplate | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
current_page | int | 是 | 1 | 分页,第几页,从1开始 |
page_size | int | 是 | 20 | 每页条数,默认20,最大 100 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<DistributorDescTemplate> |
DistributorDescTemplate结构
参数名称 | 参数类型 | 示例值 | 参数描述 |
id | long | id | |
name | string | 模板名称 | |
supplier_intro | string | 供货商简介 | |
contact | string | 联系方式 | |
after_sales_policy | string | 售后政策 | |
distributor_desc | string | 分销说明 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"after_sales_policy":"默认模板",
"contact":"66666666666",
"distributor_desc":"<p>默认模板</p><div class=\"media-wrap image-wrap\"><img id=\"92e1411e-8a69-4ac5-bb96-8dfc6daa68ea\" title=\"image.png\" alt=\"image.png\" src=\"https://yuntisyscdn.bookln.cn/webserver/slt/commFileUpload/11832c80-3891-4bb3-8520-81b8dfe569a7.png\"/></div>",
"id":9083,
"name":"默认模板",
"supplier_intro":"默认模板"
}
],
"total_pages":1,
"total_records":1
},
"request_id":"0783fec1596045e4b8500f4e95b45ffe"
}
商品
获取商品类目列表
用途:书链通商品主要用于电商平台和选品市场上架营销,基于各大电商平台标准类目,创建商品时确认类目;
公共参数:
api_method | api_version |
goods.get.list.cat | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
响应参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | ||
request_id | string | 类目名称 | ||
data | List<Cat> |
Cat结构:
参数名称 | 参数类型 | 示例值 | 参数描述 | |
id | long | id | ||
name | string | 类目名称 | ||
pid | long | 父类目id | ||
level | int | 类目级别 | ||
subs | List<Cat> |
{
"code":0,
"data":[
{
"id":1,
"level":0,
"name":"教育",
"subs":[
{
"id":2,
"level":0,
"name":"工具书",
"pid":1
}
]
}
],
"request_id":"c5c5ac0ebd8443bdab2cb305ba7d3932"
}
获取商品列表
用途:获取书链通的商品信息;
公共参数:
api_method | api_version |
goods.get.list.goodsSku | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
sku_id | string | 否 | 3558192687276550000 | 规格id |
sku_code | string | 否 | dy001 | 规格编码 |
current_page | int | 是 | 分页,第几页,从1开始 | |
page_size | int | 是 | 每页条数,默认20,最大 100 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<GoodsSku> |
GoodsSku结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
sku_id | long | 规格ID | |
gmt_modified | string | 修改时间 | |
isbn | string | ISBN | |
name | string | 商品名称 | |
freight_template_id | long | 运费模版id | |
pa_main_img | string | 相册资料-主图 | |
pa_attached_drawing | string | 相册资料-附图 | |
pa_transparent_map | string | 相册资料-透明图 | |
pa_detail_map | string | 相册资料-详情图 | |
pa_main_img_video | string | 相册资料-主图视频 | |
distributor_desc_template_id | long | 分销说明模板id | |
pricing | long | 定价 | |
publisher | string | 出版社 | |
cat_id | long | 类型id | |
cat_name | string | 类目名称 | |
p_cat_id | long | 父类目id | |
file_url | string | 附件地址 | |
file_name | string | 附件名称 | |
link_url | string | 商品链接 | |
goods_code | string | 商品编码 | |
sku_code | string | 规格编码 | |
sku_name | string | 规格名称 | |
weight | long | 重量 | |
note | string | 备注 | |
sku_img | string | 规格图片 | |
goods_status | int | 商品状态 1=启用 2=停用 | |
cost_price | long | 成本价 | |
supply_price | long | 供货价(基础分销价) | |
flat_price | long | 统一售价 | |
price_type | int | 1=RETAIL_PRICE=建议零售价,2=FLAT_PRICE=统一售价 | |
online_type | int | 0=未上架,1-分销市场,2=专属市场,3=同时上架 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"cat_id":2,
"cat_name":"工具书",
"cost_price":100,
"distributor_desc_template_id":9083,
"file_name":"",
"file_url":"",
"freight_template_id":10243,
"goods_code":"11111",
"goods_name":"图书",
"goods_status":1,
"isbn":"1111111111111",
"online_type":3,
"p_cat_id":1,
"pa_detail_map":"",
"pa_main_img":"https://yuntisyscdn.bookln.cn/webserver/slt/commFileUpload/3b954981-5e51-4f06-bd8d-ad17feff49af.png,https://yuntisyscdn.bookln.cn/webserver/slt/commFileUpload/889aa92c-5b67-4742-8fa9-45b48f2e4ec8.jpg,",
"pa_main_img_video":"[{\"cover\":\"https://yuntisyscdn.bookln.cn/server/slt/f5d98f2d-16fd-413f-a203-25cb080a8690_20230611200607_f3cc.mp4?x-oss-process=video/snapshot,t_1000,f_jpg,w_800,h_600\",\"video\":\"https://yuntisyscdn.bookln.cn/server/slt/f5d98f2d-16fd-413f-a203-25cb080a8690_20230611200607_f3cc.mp4\"}]",
"price_type":1,
"pricing":220,
"publisher":"缇米出版社",
"sku_code":"11111",
"sku_id":2798093,
"sku_img":"https://yuntisyscdn.bookln.cn/webserver/slt/commFileUpload/3b954981-5e51-4f06-bd8d-ad17feff49af.png",
"sku_name":"默认规格",
"supply_price":100,
"weight":1000
}
],
"total_pages":1,
"total_records":13
},
"request_id":"b77777d61d45495a92b712e261ed78f7"
}
店铺
获取店铺列表
用途:如果分销商订单来源多个店铺,可以在书链通对应多个店铺创建订单时可以匹配书链通店铺从而实现订单按照店铺维度管理;(开放店铺内容仅自有店铺,明文数据)
公共参数:
api_method | api_version |
shop.get.list.shop | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
current_page | int | 是 | 1 | 分页,第几页,从1开始 |
page_size | int | 是 | 20 | 每页条数,默认20,最大 100 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
id | bigint(20) | 编号(店铺ID) | |
gmt_create | datetime | 创建时间 | |
gmt_modified | datetime | 修改时间 | |
shop_name | varchar(50) | 店铺名称 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"gmt_create":"2023-08-31 14:41:14",
"gmt_modified":"2023-08-31 14:41:14",
"id":43455,
"shop_name":"阿继分销20"
}
],
"total_pages":1,
"total_records":1
},
"request_id":"bee5223e9e0343889244345c2e311cf6"
}
获取铺货资料
用途:用于获取供应商维护在书链通中供商品发布电商平台中所需要的素材及资料;
公共参数:
api_method | api_version |
shop.get.list.listingGoodsInfo | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
type | int | 是 | 平台类型 | |
sku_id | string | 否 | 3558192687276550000 | 规格id,sku_id和sku_code不能同时传 |
sku_code | string | 否 | dy001 | 规格编码,sku_id和sku_code不能同时传 |
gmt_modified_start | string | 否 | 2021-12-02 00:00:06 | 修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天 |
gmt_modified_end | string | 否 | 2021-12-09 00:00:06 | 修改结束时间,和结束时间必须同时存在,时间间隔不能超过七天 |
current_page | int | 是 | 分页,第几页,从1开始 | |
page_size | int | 是 | 每页条数,默认20,最大 100 |
返回参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<GetListingGoodsInfoListRespData> |
GetListingGoodsInfoListRespData 结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
id | long | 编号 | |
gmt_create | string | 创建时间 | |
gmt_modified | string | 修改时间 | |
goods_id | long | 商品id | |
goods_name | string | 商品名称 | |
shop_type | int | 平台类型 | |
conf_val | text | 商品资料 | |
platform_cat_id | long | 平台类目id |
订单
创建订单
用途:分销商商城将订单上传至书链通;
公共参数:
api_method | api_version |
order.create.order | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | long | 是 | 电商平台单号 | |
pay_amount | long | 是 | 买家实付金额 | |
post_amount | long | 否 | 买家运费 | |
buyer_words | string | 否 | 买家备注 | |
seller_words | string | 否 | 卖家备注 | |
shop_id | long | 是 | 店铺ID | |
order_create_time | string | 是 | 下单时间 | |
order_pay_time | string | 是 | 付款时间 | |
buyer_nick | string | 是 | 买家昵称 | |
receiver_address | ReceiverInfo | 是 | 详细地址 | |
items | List<Item> | 是 | 规格信息 |
ReceiverInfo结构:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
receiver_name | string | 是 | 收件人姓名 | |
receiver_mobile | long | 是 | 收件人电话号码 | |
receiver_address | string | 是 | 详细地址 | |
province | string | 是 | 省 | |
city | string | 是 | 市 | |
area | string | 是 | 区 |
Item结构:
参数名称 | 参数类型 | 是否必填 | 示例值 | 参数描述 |
source_oid | varchar(50) | 是 | 商品订单号 | |
goods_num | int(10) | 是 | 商品数量 | |
goods_picm | text | 否 | 商品图片 | |
goods_code | varchar(50) | 是 | 商品编码 | |
goods_name | varchar(255) | 是 | 商品名称 | |
sku_code | varchar(50) | 是 | sku 编码 | |
sku_name | varchar(255) | 是 | sku 名称 | |
user_amount | bigint(20) | 是 | 总实付金额 | |
user_price | bigint(20) | 是 | 客户下单商品单价 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
message | |||
request_id |
修改订单卖家备注
用途:修改订单卖家备注同步至书链通订单
公共参数:
api_method | api_version |
order.modify.sellerRemark | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | integer | 是 | 订单号 | |
seller_remark | string | 是 | 卖家备注,每次都是覆盖系统里的卖家备注,最大长度最大长度500 | |
modify_time | long | 是 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
message | |||
request_id |
修改订单买家收货信息
用途:修改订单卖家备注同步至书链通订单
公共参数:
api_method | api_version |
order.modify.buyerReceiverInfo | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | string | 是 | 4784385386387320000 | 订单号 |
receiver_info | object | 是 | ||
modify_time | string | 是 |
receiver_info | 参数类型 | 是否必须 | 示例值 | 参数描述 |
receiver_name | string | 是 | ||
receiver_mobile | string | 是 | 12312341234 | |
receiver_address | string | 是 | ||
province | string | 是 | 北京 | 省 |
city | string | 是 | – | 市 |
area | string | 是 | – | 区 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
message | |||
request_id |
订单拆分(暂不提供)
用途:修改订单卖家备注同步至书链通订单
公共参数:
api_method | api_version |
order.split.order | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
待发货订单列表查询(供应商)
用途:获取书链通的商品信息;(权限控制,分销商应用下:仅限自有店铺订单;供应商应用下:查询所有订单)
公共参数:
api_method | api_version |
order.get.list.order | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
page_size | int | 是 | 20 | 单页大小,限制100以内 |
current_page | int | 是 | 0 | 页码,0页开始 |
tid | string | 是 | ||
logistics_code | String | 否 | 435435 | 物流单号 |
gmt_create_start | string | 否 | 下单时间:开始,秒级时间戳 | |
gmt_create_end | string | 否 | 下单时间:截止,秒级时间戳 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 | |
data | Page<Order> |
Order结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
tid | long | 书链通erp单号 | |
source_tid | string | 电商平台订单号 | |
gmt_modified | string | 修改时间 | |
mid_user_id | long | 分销商ID | |
mid_user_name | string | 分销商名称 | |
分销商别名ID | |||
分销商别名 | |||
buyer_words | string | 买家备注 | |
seller_words | string | 卖家备注 | |
shop_id | long | 店铺ID | |
post_time | string | 发货时间 | |
close_reason | int | 关闭原因 | |
trade_finish_time | string | 交易结束时间 | |
intercept_status | int | 拦截状态 | |
exception_set | string | 异常集合 | |
tag_set | string | 标签集合 | |
abnormal_status | int | 异常状态 | |
delivery_type | int | 发货类型 | |
发货状态(待审核、待支付、待发货、部分发货、已发货、已完成) | |||
user_amount | long | 用户金额 | |
user_post_amount | long | 用户邮费 | |
buyer_nick | string | 买家昵称 | |
encryptedReceiver | string | {“sourceTid”: “原始线上单号”, “platformCode”: “TB”, “receiverName”: “abcxxx”, “receiverMobile”: “abcxxx”, “receiverAddr”: “abcxxx”} | 加密地址 |
items | List<Item> | 商品信息 |
Item结构:
参数名称 | 参数类型 | 示例值 | 参数描述 |
oid | varchar(50) | 商品订单号 | |
goods_num | int(10) | 商品数量 | |
goods_pic | text | 商品图片 | |
goods_id | bigint(20) | 商品ID | |
goods_code | varchar(50) | 商品编码 | |
goods_name | varchar(255) | 商品名称 | |
sku_id | bigint(20) | sku id | |
sku_code | varchar(50) | sku 编码 | |
sku_name | varchar(255) | sku 名称 | |
delivery_status | tinyint(4) | 发货状态(0=待拣货,1=待发货,2=已发货,3=关闭订单,4=发货失败) | |
post_time | datetime | 发货时间 | |
after_sale_status | tinyint(4) | 售后状态(0=无售后,1=售后中,2=售后完成) | |
user_amount | bigint(20) | 客户下单金额 | |
user_post_amount | bigint(20) | 客户下单邮费 | |
weight | bigint(20) | 重量 | |
user_price | bigint(20) | 客户下单商品单价 | |
exception_set | varchar(255) | 异常原因 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"abnormal_status":0,
"addr":"测试",
"buyer_nick":"测试是",
"city":"石家庄市",
"delivery_type":1,
"exception_set":"[]",
"gmt_modified":"2023-08-22 00:00:56",
"interceptStatus":0,
"items":[
{
"after_sale_status":1,
"delivery_status":2,
"exception_set":"[]",
"goods_code":"87778787812331312",
"goods_id":15226209,
"goods_name":"课程资源",
"goods_num":1,
"goods_pic":"https://yuntisyscdn.bookln.cn/webserver/slt/commFileUpload/3536ec1c-798a-409e-8b1f-326de681987e.png",
"oid":"230821229109024850",
"post_time":"2023-08-21 18:12:55",
"sku_code":"87778787812331312",
"sku_id":2826136,
"sku_name":"默认规格",
"user_amount":300,
"user_post_amount":0,
"user_price":300,
"weight":1000
}
],
"mid_user_id":1502924,
"mid_user_name":"中盘商",
"name":"测试是",
"post_time":"2023-08-21 18:12:55",
"province":"河北省",
"shop_id":18791,
"tag_set":"[\"7\",\"8\"]",
"tid":"SLT2308210167056762",
"user_amount":300,
"user_post_amount":0
}
],
"total_pages":1,
"total_records":1
},
"request_id":"fb533bec371c48c38b79a5fe7211698d"
}
更新订单运费(供应商侧)
用途:通过接口写入订单运费,书链通内部将运费按商品重量分摊到订单商品中存储;
公共参数:
api_method | api_version |
order.modify.orderFreight | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
tid | 是 | 原平台订单号 | ||
post_amount | 是 | 物流成本 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 |
售后
买家申请退款
用途:买家申请退款后将订单同步之书链通商城,未发货前用户申请退款,则分销商商城调用该接口对订单标记【商城申请退款】的异常标签;(未发货前的订单)
数据流向:第三方电商流到书链通;
公共参数:
api_method | api_version |
aftersale.refund.apply | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | array | 是 | 内部单号;一次最大支持50条 | |
source_oids | array | 是 | 商品订单号 | |
remark | string | 否 | 备注 | |
modify_time | string | 是 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
message | string | ||
request_id | string |
同意买家退款
用途:商家同意买家退款后,调用此接口,将订单取消发货,同时书链通将异常标记变更为【商城退款完成】;
数据流向:第三方电商平台到书链通;
公共参数:
api_method | api_version |
aftersale.refund.agree | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | array | 是 | 内部单号;一次最大支持50条 | |
source_oids | array | 是 | 商品订单号 | |
modify_time | string | 是 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 |
取消退款申请
用途:订单推送至书联通后,未发货前用户取消申请退款,第三方系统调用该接口取消退款申请;
公共参数:
api_method | api_version |
aftersale.refund.cancel | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | array | 是 | 内部单号 | |
source_oids | integer | 是 | 商品订单号 | |
modify_time | string | 是 | 备注 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 |
售后单创建
用途:电商系统将售后订单同步给书链通(发货后的订单用售后单来处理);
数据流向:第三方电商系统到书链通;
公共参数:
api_method | api_version |
aftersale.create.aftersaleOrder | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
source_tid | string | 是 | 平台订单号 | |
source_oid | string | 是 | 平台商品单号 | |
source_rid | string | 平台售后单单号 | ||
type | int | 是 | 售后类型:1-仅退款 2-退货退款 | |
reason | string | 是 | 售后原因 | |
remark | string | 否 | 备注 | |
small_pay_amount | long | 否 | 小额现款赔付 | |
certificate | string | 否 | 凭证(图片、视频) | |
user_logistics_name | string | 否 | 买家退回物流商 | |
user_logistics_code | string | 否 | 买家退回物流单号 | |
apply_time | string | 是 | 平台申请时间 | |
item | obj | 是 | 商品信息 |
Item结构:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
goods_name | 是 | 商品名称 | ||
goods_code | 是 | 商品编码 | ||
sku_name | 是 | 规格名称 | ||
sku_code | 是 | 规格编码 | ||
goods_num | 是 | 售后数量 | ||
receive_amount | 是 | 应收赔付金额 | ||
post_amount | 是 | 运费 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
request_id | string | 类目名称 |
取消售后单
用途:买家取消售后申请后,第三方电商系统将取消申请同步至书链通;
数据流向:第三方电商系统同步至书链通;
公共参数:
api_method | api_version |
aftersale.cancel.aftersaleOrder | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
after_sale_order_no | string | 是 | 售后单号 | |
refund_remark | string | 是 | 售后备注 |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | int | 错误码,0代表成功 | |
message | string | ||
request_id | string |
库存
获取商品库存
用途:将外部库存同步进书链通,全量同步;
数据流向:书链通到第三方商城;
接口说明:
- 如果入参传了sku_code ,接口实时返回该商品的库存数据;
- 如果入参没有传sku_code ,那么此接口按照页数商品数据,目前限制在每日凌晨1点 ~ 2点;
公共参数:
api_method | api_version |
inventory.get.list.inventory | 1.0 |
请求参数:
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
current_page | int | 是 | 1 | 第几页,从1开始 |
page_size | int | 是 | 30 | 默认20,最大不超过100 |
sku_code | string | 否 | dy001 | sku编码;如果该字段没有传参,那么表示全量查询数据; |
响应参数:
参数名称 | 参数类型 | 示例值 | 参数描述 |
code | integer | 0 | |
msg | string | 执行成功 | |
data | List<GetListInventoryRespData> |
GetListInventoryRespData结构
参数名称 | 参数类型 | 示例值 | 参数描述 |
sku_id | long | 商品规格id | |
goods_id | long | 商品id | |
inventory_num | long | 库存数量 | |
gmt_modified | string | 更新时间 |
{
"code":0,
"data":{
"current_page":1,
"page_data":[
{
"cat_id":2,
"cat_name":"工具书",
"cost_price":100
}
],
"total_pages":1,
"total_records":13
},
"request_id":"b77777d61d45495a92b712e261ed78f7"
}
九、错误码
错误码 | 错误信息 | 解决办法.. |
400101 | 请求体为空 | |
400102 | 请求提非法或格式错误 | |
400103 | 缺少公共参数 | |
400201 | 不支持的签名类型 | |
400202 | 签名非法或错误 | |
400301 | API方法或版本非法 | |
400302 | 暂不支持的方法/版本 | |
400501 | 不支持的协议版本 | |
400601 | 客户端 timestamp 格式转换错误 | |
400602 | 客户端 timestamp 非法 | |
400701 | appkey 非法 | |
400702 | appkey 失效 | |
500001 | 业务异常 | 关注响应结果message内容 |
500101 | 业务参数为空 | |
500102 | 业务参数转换异常 | |
500103 | current_page 有误 | |
500104 | page_size 有误 | |
500201 | tid 为空 | |
500202 | oids 为空 | |
500203 | tid 有误 | |
500204 | oids 有误 | |
500301 | 同步数据有误 | |
500401 | 必填字段为空 | |
500901 | 物流公司 code 为空 | |
500902 | 快递单号为空 | |
500903 | 快递公司 code 有误 | |
-1 | 系统异常 | 联系书链通对接人员提供支持 |
-10 | 未知错误码 | 联系书链通对接人员提供支持 |