产品编码查询 API 文档
http协议网关:http://productcode.cn/api/productSearch
https协议网关:https://productcode.cn/api/productSearch
公开密匙信息,可直接使用。 app_key:test123456 app_secret:ABC987654321
请求参数
请求方式: POST
请求体格式: application/json
| 参数名 | 类型 | 必选 | 描述 |
|---|---|---|---|
| app_key | string | 是 | 应用编码 |
| sign | string | 是 | 签名,用于验证请求有效性 |
| time | string | 是 | 10位时间戳 |
| code | string | 否 | 商品编码(模糊搜索) |
| brand | string | 否 | 品牌名称(模糊搜索) |
| membership | string | 否 | 等级名称 |
| value | string | 否 | 综合查询(商品名、品牌、会员) |
| charge_type | int | 否 | 充值类型(1直充,2卡券,3代充) |
| page | int | 否 | 页码,默认1 |
| limit | int | 否 | 每页数量,默认20,最大100 |
请求示例
{
"app_key": "your_app_key",
"sign": "your_sign",
"time": "1630000000",
"code": "ZMGTV",
"brand": "芒果tv",
"membership": "VIP",
"value": "VIP会员",
"charge_type": 1,
"page": 1,
"limit": 20
}
响应参数
| 参数名 | 类型 | 描述 |
|---|---|---|
| code | int | 状态码(0成功) |
| data | object | 返回数据 |
| data.list | array | 产品列表 |
| data.count | int | 总记录数 |
| message | string | 消息 |
成功响应示例
{
"code": 0,
"data": {
"list": [
{
"code": "ZMGTVVIP1Y",
"brand": "芒果tv",
"validity": "1年",
"charge_type": "直充",
"product_name": "芒果tv/VIP会员/1年",
"membership": "VIP",
"order": 1
},
{
"code": "ZMGTVVIP6M",
"brand": "芒果tv",
"validity": "6个月",
"charge_type": "卡券",
"product_name": "芒果tv/VIP会员/6个月",
"membership": "VIP",
"order": 2
}
],
"count": 10
},
"message": ""
}
错误响应示例
{
"code": 400,
"message": "请求参数错误"
}
错误代码
- 400 - 请求参数错误
- 401 - 无效 app_key 或未启用
- 403 - IP 不在允许范围
- 404 - 路径无效
- 408 - 请求超时
- 429 - 请求频率限制
- 500 - 服务器内部错误
签名验证说明
- 除 sign 外所有参数参与签名
- 按 key 升序排列,拼接成 query 字符串,如 a=1&b=2&c=3
- 将 query 拼接 app_secret 后 MD5 加密,小写输出
- 示例代码:
PHP签名示例: ksort($params); $query = urldecode(http_build_query($params)); $sign = strtolower(md5($query . $app_secret));
服务端将使用同样方式生成签名与请求签名比对验证。
使用限制与频率控制
- 时间戳不能超出当前时间 ±5 分钟
- 每页最多返回 100 条数据
- 每个 app_key 每分钟调用次数有限