热力商户对接接口说明.md 9.4 KB

[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() +
            "&params=" + 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密钥可以使用支付宝提供的工具计算 密钥生成工具 image 开发资源有限,目前只支持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} |

params内容

变量名 描述 示例值
id 商品id 1

返回结果

image

data通过JSON反序列为商品详情信息

productInfo

变量名 描述 示例值
id 商品id 1
idType 商品分类id 1
productTypeName 商品分类名称 联单票据
productName 商品名称 无碳联单
productUnit 商品单位
priceQtyContent 报价数量描述
minDeliveryDay 最短发货周期(天)
partInfoList 部件partInfo数组

partInfo部件信息

变量名 描述 示例值
id 部件id
partName 部件名称
parameterList 报价参数parameterInfo数组

parameterInfo报价参数信息

变量名 描述 示例值
id 参数id
defaultValue 默认值
idParameter 对应产品参数id
parameterName 参数名称
itemList 参数项目parameterItem列表

parameterItem

变量名 描述 示例值
id 参数项目id
itemName 项目名称
itemValue 项目值
itemControl 参数项目控制可选参数项目

请求报价

应用场景

上传报价信息,获取结果。

请求参数

| 参数 | 类型 | 必填 | 描述 | 参数值 | | :------------- | :----- | :- | :--- | :------------------------ | | businessMethod | String | 是 | 业务编码 | MallAppCall_ProductQuote | | params | String | 是 | 业务参数 | JSON字符串 |

params内容

此结构有些复杂,表格不方面进行描述,下面用代码说明json数据信息


{
  "idProduct": "产品id",
  "kindCount": "款数",
  "orderQty": "订单数量",
  "quoteMemo": "报价说明",
  "orderMemo": "订单备注",
  "partList": [
    {
      "partName": "部件名称",
      "paramValueList": [
        {
          "parameterName": "参数名称",
          "paramValue": "参数值",
          "paramDisplay": "参数显示值"
        },
        {
          "parameterName": "参数名称",
          "paramValue": "200克铜版C",
          "paramDisplay": "200克铜版C"
        }
        .........
      ]
    }
  ]
}

返回结果

变量名 描述 示例值
TotalMoney 商品货款