[TOC]
调用API必须遵循以下规则:
| 规则 | 说明 |
|---|---|
| 传输方式 | HTTP/HTTPS |
| 提交方式 | 采用POST方法提交 |
| 数据格式 | 提交和返回数据都为JSON格式 |
| 字符编码 | 统一采用UTF-8字符编码 |
| 安全机制 | 签名或者IP白名单 |
| 签名算法 | 如安全机制未签名,RSA(2048)/和支付宝RAS2方式签名一样 |
| 签名要求 | 如安全机制未签名,请求和接收数据均需要校验签名 |
| 参数 | 类型 | 必填 | 描述 | 示例值 | | -------------- | ---------- | -- | ----------------------------------- | -------------------------------- | | appId | String(32) | 是 | 接口应用号 | 123456789 | | clientCode | String(32) | 是 | 商城客户号 | yinjie | | businessMethod | String(32) | 是 | 请求业务编号 | MallAppCall_ProductList | | params | String | 是 | 请求业务参数 | 业务参数全部序列化为JSON 字符串传递 | | nonceStr | String(32) | 否 | ==如安全机制为签名,则必须传入== 随机字符串,长度要求在32位以内 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | | sign | String(32) | 否 | ==如安全机制为签名,则必须传入== 通过签名算法计算得出的签名值 | |
请求参数签名数据为
content = "appid=" + x.getAppId() +
"&businessMethod=" + x.getBusinessMethod() +
"¶ms=" + x.getParams() +
"&nonceStr=" + x.getNonceStr();
| 参数 | 类型 | 必填 | 描述 | 示例值 | | -------- | ---------- | -- | ----------------------------------- | -------------------------------- | | appId | String(32) | 是 | 接口应用号 | 123456789 | | data | String | 是 | 请求业务返回值 | 业务返回数据全部序列化为JSON 字符串传递 | | nonceStr | String(32) | 否 | ==如安全机制为签名,则必须传入== 随机字符串,长度要求在32位以内 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | | sign | String(32) | 否 | ==如安全机制为签名,则必须传入== 通过签名算法计算得出的签名值 | | | httpCode | int | 是 | 错误编号 | | | msg | String | 否 | 错误内容 | |
| 错误代码 | 描述 | 原因 | 解决方案 |
|---|---|---|---|
| 10001 | POST数据为空 | http post无数据 | |
| 10002 | JSON格式不正确 | 接口对应的json数据格式不正确 | |
| 10003 | 参数中缺少businessMethod | 未传入businessMethod参数 | |
| 10004 | 参数中缺少clientCode | 未传入clientCode参数 | |
| 10005 | 未获取到clientCode对应商户信息 | clientCode由商城开发商提供 | |
| 10006 | 商户信息不正确 | ||
| 10007 | 参数中缺少appId | 未传入appId参数 | |
| 10008 | 应用appId不存在/应用appId已禁用,无法调用接口 | appId传入错误或者不存在/应用appId已禁用,无法调用接口 | |
| 10009 | 签名错误 | 签名错误 | |
| 10012 | 网络通信错误 | 网络通信错误,请稍后重试 |
RAS密钥可以使用支付宝提供的工具计算 密钥生成工具
开发资源有限,目前只支持rsa,格式为pkcs8,长度为2048
API接口协议中包含字段nonceStr,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。
正式地址 测试地址 http://xxxxxxx:xx/apis11/mallAppCall/gateway
通过该接口获取商品列表
| 参数 | 类型 | 必填 | 描述 | 参数值 | | -------------- | ------ | -- | ---- | ------------------------ | | businessMethod | String | 是 | 业务编码 | MallAppCall_ProductList | | params | String | 是 | 业务参数 | JSON字符串,此接口传空即可 |
data通过JSON反序列为商品列表数组
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 商品id | 1 |
| idType | 商品分类id | 1 |
| productName | 商品名称 | 无碳联单 |
| productTypeName | 商品分类名称 | 联单票据 |
获取商品详情,用于展示商品,进行报价。
| 参数 | 类型 | 必填 | 描述 | 参数值 | | :------------- | :----- | :- | :--- | :------------------------- | | businessMethod | String | 是 | 业务编码 | MallAppCall_ProductDetail | | params | String | 是 | 业务参数 | JSON字符串,此接口为{id:商品id} |
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 商品id | 1 |
data通过JSON反序列为商品详情信息
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 商品id | 1 |
| idType | 商品分类id | 1 |
| productTypeName | 商品分类名称 | 联单票据 |
| productName | 商品名称 | 无碳联单 |
| productUnit | 商品单位 | 本 |
| priceQtyContent | 报价数量描述 | |
| minDeliveryDay | 最短发货周期(天) | |
| partInfoList | 部件partInfo数组 |
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 部件id | |
| partName | 部件名称 | |
| parameterList | 报价参数parameterInfo数组 |
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 参数id | |
| defaultValue | 默认值 | |
| idParameter | 对应产品参数id | |
| parameterName | 参数名称 | |
| itemList | 参数项目parameterItem列表 |
| 变量名 | 描述 | 示例值 |
|---|---|---|
| id | 参数项目id | |
| itemName | 项目名称 | |
| itemValue | 项目值 | |
| itemControl | 参数项目控制可选参数项目 |
上传报价信息,获取结果。
| 参数 | 类型 | 必填 | 描述 | 参数值 | | :------------- | :----- | :- | :--- | :------------------------ | | businessMethod | String | 是 | 业务编码 | MallAppCall_ProductQuote | | params | String | 是 | 业务参数 | JSON字符串 |
此结构有些复杂,表格不方面进行描述,下面用代码说明json数据信息
{
"idProduct": "产品id",
"kindCount": "款数",
"orderQty": "订单数量",
"quoteMemo": "报价说明",
"orderMemo": "订单备注",
"partList": [
{
"partName": "部件名称",
"paramValueList": [
{
"parameterName": "参数名称",
"paramValue": "参数值",
"paramDisplay": "参数显示值"
},
{
"parameterName": "参数名称",
"paramValue": "200克铜版C",
"paramDisplay": "200克铜版C"
}
.........
]
}
]
}
| 变量名 | 描述 | 示例值 |
|---|---|---|
| TotalMoney | 商品货款 |