纷来商城系统接入引导
| 文档版本号: | V1.0.0 | 文档编号 : | 20191106 |
|---|---|---|---|
| 密级: | 保密 | 归属部门: | 研发部 |
| 产品名: | 纷来商城 | 子系统: | |
| 编写人: | 阳前云 | 日期: | 2019-11-06 |
1、引言
1.1文档概述
本文档提供商品同步以及订单同步等能力
1.2阅读对象
本文档阅读对象:纷来商城对接的第三方渠道开发人员
2、接口调用
2.1接口规则
| 名称 | 对应内容值 |
|---|---|
| 测试请求地址 | http://manage.51zheli.com/ |
| 生产请求地址 | https://manager.fenlaishop.com |
| 传输方式 | 采用HTTP传输 |
| 提交方式 | 如没有特别说明,默认采用POST提交方式 application/json |
| 字符编码 | 统一采用UTF-8字符编码 |
| 签名算法 | ascll排序+MD5加密签名 |
| 签名要求 | 请求和接收数据均需要校验签名 |
2.2 统一请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 渠道 | channelCode | 是 | string | FL | 分配给该销售渠道的渠道编码 |
| sign | sign | 是(无参数为否) | string | 8ee69888cef44e030721fd304508672 | 加密算法获取 |
2.3 统一返回响应参数
返回值类型:JSON ( application/json )
返回码描述:
{
"code":"0",
"msg":"success"
}
| 返回码 | 返回信息 | 说明 |
|---|---|---|
| 0 | success | 成功 |
| -1 | 程序猿小哥哥刚才摔倒啦!请等他爬起来~ | 失败 |
2.4 签名规则
无论是请求还是应答,签名原始串按以下方式组装成字符串:post请求头需包含 channelCode(渠道号,该信息由纷来定义分配)和 sign (签名字段,该信息由body内容数组按照键名的升序排序后拼接成字符串再拼接channelCode和key值再md5加密而成,最后转为小写);
java签名工具类
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import javax.servlet.ServletRequest;
import java.util.Enumeration;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
/**
* 签名工具
*/
public class SignUtils {
public static String getMD5Sign(JSONObject paramJson, String signKey) {
Assert.notNull(paramJson, "request params must not be null");
Set<String> set = paramJson.keySet();
TreeMap<String,String> treeMap = new TreeMap<>();
for(String key:set){
if(!"sign".equals(key)){
treeMap.put(key, paramJson.getString(key));
}
}
treeMap.put("signKey", signKey);
Set<Entry<String, String>> setKey = treeMap.entrySet();
StringBuilder sb = new StringBuilder();
setKey.forEach(e -> {
sb.append(e.getKey()).append(e.getValue());
});
return DigestUtils.md5Hex(sb.toString());
}
}