GET
获取商品分类列表
https://dcshop.xzsc.cc/user/api.php?action=goods_category
接口说明
获取主站所有允许对接的商品分类。可用于对接端建立本地分类映射。
请求参数
| 参数 | 类型 | 必填 | 传参方式 | 说明 |
action | string | 是 | GET | 固定值 goods_category |
api_key | string | 是 | GET | API 对接密钥 |
请求示例
GET /user/api.php?action=goods_category&api_key=YOUR_API_KEY
返回示例
{
"code": 0,
"msg": "ok",
"data": [
{
"id": "1",
"title": "虚拟商品",
"taxis": "10",
"description": "自动发货卡密类商品"
},
{
"id": "2",
"title": "会员服务",
"taxis": "5",
"description": "人工处理服务类商品"
}
]
}
返回字段说明
| 字段 | 类型 | 说明 |
id | string | 分类 ID,用于 goods_list 的 cid 参数 |
title | string | 分类名称 |
taxis | string | 排序权重,数值越大越靠前 |
description | string | 分类描述 |
GET
获取商品列表
https://dcshop.xzsc.cc/user/api.php?action=goods_list
接口说明
获取主站允许对接的商品列表(分页)。仅返回已上架 is_on_shelf=1 且开启了对接 allow_dock=1 的商品。价格会根据你的 API 对接账号的会员等级自动计算专属折扣价。
请求参数
| 参数 | 类型 | 必填 | 传参方式 | 说明 |
action | string | 是 | GET | 固定值 goods_list |
api_key | string | 是 | GET | API 对接密钥 |
cid | int | 否 | GET | 分类 ID,传入可只拉取该分类下的商品;不传则拉取全部 |
page | int | 否 | GET | 页码,从 1 开始,默认 1 |
limit | int | 否 | GET | 每页数量,默认 20,最大 100 |
请求示例
GET /user/api.php?action=goods_list&api_key=YOUR_API_KEY&cid=1&page=1&limit=20
返回示例
{
"code": 0,
"msg": "ok",
"data": [
{
"id": 12,
"sort_id": 1,
"type": "duli",
"title": "Netflix 会员月卡",
"des": "Netflix 正规会员账号",
"cover": "/content/uploadfile/cover/netflix.jpg",
"sales": 156,
"stock": 89,
"is_sku": "n",
"create_time": 1716900000,
"guest_price": 29.90,
"user_price": 25.00,
"market_price": 39.90,
"cost_price": 20.00
},
{
"id": 15,
"sort_id": 2,
"type": "xuni",
"title": "虚拟服务 - 网站搭建",
"des": "专业网站搭建服务",
"cover": "/content/uploadfile/cover/service.jpg",
"sales": 32,
"stock": 999,
"is_sku": "y",
"create_time": 1716800000,
"guest_price": 99.00,
"user_price": 89.00,
"market_price": 199.00,
"cost_price": 60.00
}
]
}
返回字段说明
| 字段 | 类型 | 说明 |
id | int | 商品 ID(后续下单需用此 ID) |
sort_id | int | 所属分类 ID |
type | string | 商品类型标识,如 duli(独立卡密)、xuni(虚拟服务)、guding(固定卡密)等 |
title | string | 商品标题 |
des | string | 商品简介 |
cover | string | 封面图相对路径(需拼接主站域名使用) |
sales | int | 已售数量 |
stock | int | 当前库存 |
is_sku | string | "y" = 有多规格,"n" = 无规格 |
guest_price | float | 你的采购价(已按你的会员等级计算折扣),单位:元 |
user_price | float | 主站登录用户价,单位:元 |
market_price | float | 原价/划线价,单位:元 |
cost_price | float | 成本价,单位:元 |
guest_price 是你通过 API 下单时实际扣费的单价。如果你在主站的会员等级越高,采购价可能越低。建议以此价格作为成本基准来设定你本地的销售价。
GET
获取商品详情
https://dcshop.xzsc.cc/user/api.php?action=goods_detail
接口说明
获取单个商品的完整详情,包括所有 SKU 规格、库存、各等级价格。用于导入商品到本地时获取完整信息。仅返回已上架且允许对接的商品。
请求参数
| 参数 | 类型 | 必填 | 传参方式 | 说明 |
action | string | 是 | GET | 固定值 goods_detail |
api_key | string | 是 | GET | API 对接密钥 |
id | int | 是 | GET | 商品 ID |
请求示例
GET /user/api.php?action=goods_detail&id=12&api_key=YOUR_API_KEY
返回示例(无规格商品)
{
"code": 0,
"msg": "ok",
"data": {
"id": 12,
"sort_id": 1,
"type": "duli",
"title": "Netflix 会员月卡",
"des": "Netflix 正规会员账号",
"cover": "/content/uploadfile/cover/netflix.jpg",
"content": "<p>商品详细介绍 HTML</p>",
"sales": 156,
"stock": 89,
"is_sku": "n",
"is_on_shelf": 1,
"attr_id": 0,
"attr_name": null,
"skus": [
{
"id": 45,
"goods_id": 12,
"sku": "0",
"guest_price": 29.90,
"user_price": 25.00,
"market_price": 39.90,
"cost_price": 20.00,
"stock": 89,
"sales": 156
}
]
}
}
返回示例(多规格商品)
{
"code": 0,
"msg": "ok",
"data": {
"id": 15,
"sort_id": 2,
"type": "xuni",
"title": "虚拟服务 - 网站搭建",
"is_sku": "y",
"attr_id": 3,
"attr_name": "服务套餐",
"stock": 999,
"skus": [
{
"id": 60,
"goods_id": 15,
"sku": "10",
"guest_price": 99.00,
"user_price": 89.00,
"market_price": 199.00,
"cost_price": 60.00,
"stock": 999,
"sales": 20
},
{
"id": 61,
"goods_id": 15,
"sku": "11",
"guest_price": 199.00,
"user_price": 179.00,
"market_price": 399.00,
"cost_price": 120.00,
"stock": 999,
"sales": 12
}
],
"spec": [
{
"sku_attr_id": 5,
"title": "套餐类型",
"sku_values": [
{"id": 10, "name": "基础版"},
{"id": 11, "name": "高级版"}
]
}
]
}
}
SKU 与规格说明
| 字段 | 类型 | 说明 |
is_sku | string | "y" 表示有多规格,"n" 表示无规格 |
skus[].sku | string | SKU 标识。无规格时为 "0";多规格时为规格值 ID 组合,如 "10" 或 "10-22"(用 - 连接) |
spec[].title | string | 规格属性名,如"套餐类型"、"颜色" |
spec[].sku_values[].id | int | 规格值 ID,下单时传入 sku 参数需要用到 |
spec[].sku_values[].name | string | 规格值显示名称,如"基础版"、"红色" |
SKU 匹配规则:下单时 sku 参数必须与 skus[].sku 完全匹配。多规格商品的 sku 是由所有选中规格值的 id 用 - 拼接而成,且必须与 skus 列表中的某一条完全一致。
例如用户选择了"套餐类型:高级版"(id=11),则 sku = "11";如果有两个规格维度且选了 id=10 和 id=22,则 sku = "10-22"。
常见错误
| 错误信息 | HTTP 状态码 | 原因 |
| 缺少商品ID | 400 | 未传入 id 参数或传入的值 ≤ 0 |
| 商品不存在或已下架 | 400 | 商品不存在、已删除、已下架、或未开启对接权限 |