第三方程序对接请使用 签名对接 API ;会员网页使用登录会话接口。本文按当前代码整理,示例均为演示值,实际可用接口和权限以部署版本与账号配置为准。
基础地址为当前网站的 HTTPS 域名。主站、分站的商品可见范围和价格可能不同,请始终使用同一站点完成查询与下单。
签名接口流程:连接与余额 → 商品目录 / 详情 → 选择类别与规格 → 库存 / 报价 → 余额下单 → 查单。商品数字 ID 与对接 CODE 不可混用。
普通接口使用表单编码 application/x-www-form-urlencoded;上传接口使用 multipart/form-data。嵌套规格例:sku[时长]=月付。不要把 JSON 请求体直接替代表单。
成功以 JSON 中 code=200 判断,HTTP 200 不代表业务成功。失败通常为 {"code":0,"msg":"错误说明"},失败时可能没有 data。下方响应示例只展示关键字段。
订单号请按字符串保存。订单 status:0 未支付、1 已支付、2 接口退款、3 网站退款、4 拼团退款;发货 delivery_status:0 未发货、1 已发货、2 预订待补货、3 待成团、4 已退款不发货。支付成功不等于已发货。
通用分页通常返回 data.list / data.total;前台商品列表返回 data[] 和顶层 total。金额可能为数字或小数字符串,请按十进制处理。
签名认证与 PHP 接入示例
公共参数:app_id 为会员 ID,sign 为小写 MD5 签名;使用会员自己的 API 密钥 app_key。密钥只在调用方服务端使用,示例从环境变量读取,不在文档中展示真实密钥。
签名步骤:移除 sign → 对顶层参数按键名 ksort 排序 → 仅移除值严格等于空字符串的项(保留 0)→ 使用 PHP 默认 http_build_query 序列化 → 拼接 &key=密钥 → 对整个字符串 urldecode → MD5。数组字段也参与签名,必须与实际提交数据一致。
app_key 无需作为公共表单字段发送;旧客户端若发送了 app_key,该字段同样参与签名。签名接口不使用登录 Cookie 或 CSRF。此处是现有协议,不是易支付的支付回调签名。
<?php
// Run on your server. Set credentials in environment variables.
$base = rtrim((string)getenv('MALL_API_BASE'), '/'); // HTTPS site URL
$appKey = (string)getenv('MALL_APP_KEY');
$data = ['app_id' => (string)getenv('MALL_APP_ID'), 'code' => 'PRODUCT_CODE', 'num' => 1];
unset($data['sign']);
ksort($data);
foreach ($data as $key => $value) {
if ($value === '') unset($data[$key]); // Keep 0; do not use array_filter().
}
$data['sign'] = md5(urldecode(http_build_query($data) . '&key=' . $appKey));
$ch = curl_init($base . '/shared/commodity/valuation');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
]);
$response = curl_exec($ch);
if ($response === false) throw new RuntimeException(curl_error($ch));
curl_close($ch);
$result = json_decode($response, true, 512, JSON_THROW_ON_ERROR);
if ((int)($result['code'] ?? 0) !== 200) throw new RuntimeException($result['msg'] ?? 'API request failed');
echo json_encode($result['data'], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
会员会话认证、常见错误与重试
会员接口使用本站有效登录 Cookie;需要 CSRF 的接口还须发送当前页面 meta[name="csrf-token"] 中的值到 X-CSRF-Token 请求头。接口清单中已注明认证要求。商家或分站权限仍由服务端验证,传入会员 ID 不能绕过权限。
“登录会话过期”请重新登录;“安全令牌已更新”请刷新页面;“商户ID不存在 / 密钥错误”请核对 app_id、密钥与签名字段;“库存不足”请重新读取库存与规格;“余额不足”请检查余额账户,硬币不等于可支付余额。
上传失败请按返回 msg 检查格式、尺寸、GD 扩展及 OSS 配置。403、413、429 或非 JSON 响应还可能来自防火墙、请求大小限制或频率限制。
查询接口请缓存并适度轮询。创建订单超时不代表没有扣款,不要直接重复购买;先用已知 tradeNo 查单,无法确认时联系管理员核对。request_no 用于重复请求检测,不保证重复请求返回原结果。
仅测试下拉列表中的本站查询接口。签名接口、查单密码、图片上传、下单、退款、退团和修改设置等操作请按文档由业务程序调用。
选择接口,填写实际参数后点击在线测试查询。
全部分组 签名对接 API 前台商品与查单 会员账户与订单 拼团 会员通知 会员工单 分站与商家
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
所有 /shared 接口都需要公共签名参数;返回余额不包含硬币。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /shared/authentication/connect
返回字段 data.shopName:平台店铺名称
data.balance:签名账号的余额
成功响应示例(节选) {
"code": 200,
"data": {
"shopName": "示例商城",
"balance": "100.00"
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
仅包含上架、启用 API 且当前账号可见的商品。多维规格实际价格请调用 valuation。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/items
返回字段 data[]:分类数组;children[] 为分类下可对接商品
children[].id / code / name:商品 ID、对接 CODE、名称
price / user_price / factory_price:当前签名账号在当前网站的拿货价格
config:INI 字符串;price_selection:默认类别与规格
成功响应示例(节选) {
"code": 200,
"data": [
{
"id": 1,
"name": "示例分类",
"children": []
}
]
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
类别、规格及动态下单控件应读取本接口,不能用示例规格硬编码。
参数 类型 必填 说明 示例值
codestring 是 商品对接 CODE,不是商品数字 ID PRODUCT_CODE
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/item
code=PRODUCT_CODE
返回字段 data:商品详情对象;含 id、code、name、价格、config、stock 等
config:解析后的配置对象,与 items / inventory 的 INI 字符串不同
成功响应示例(节选) {
"code": 200,
"data": {
"id": 1,
"code": "PRODUCT_CODE",
"name": "示例商品",
"config": [],
"price_selection": {
"race": "",
"sku": []
}
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
库存会变化,下单前建议重新校验。兼容参数 shared_code 与 sharedCode 二选一。
参数 类型 必填 说明 示例值
sharedCodestring 是 对接 CODE;兼容 shared_code PRODUCT_CODE racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/inventory
sharedCode=PRODUCT_CODE
返回字段 data.count:当前规格库存
delivery_way:0 自动发货,1 人工发货;draft_status:是否支持预选
price / user_price / factory_price:签名账号价格;config:INI 字符串;price_selection:报价选择
成功响应示例(节选) {
"code": 200,
"data": {
"count": 10,
"delivery_way": 0,
"draft_status": 0,
"price": "3.00",
"user_price": "3.00",
"factory_price": "3.00",
"config": "",
"price_selection": {
"race": "",
"sku": []
}
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
适合仅需库存的场景。
参数 类型 必填 说明 示例值
codestring 是 商品对接 CODE,不是商品数字 ID PRODUCT_CODE racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/stock
code=PRODUCT_CODE
返回字段 data.stock:库存数量;可能以字符串返回
成功响应示例(节选) {
"code": 200,
"data": {
"stock": "10"
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
仅校验,不锁库存。远程供货分支的规格校验能力取决于上游实现。
参数 类型 必填 说明 示例值
shared_codestring 是 商品对接 CODE PRODUCT_CODE numinteger 是 购买数量,正整数 1 card_idinteger 是 预选卡 ID;非预选填 0 0 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/inventoryState
shared_code=PRODUCT_CODE&num=1&card_id=0
返回字段 code=200 表示校验通过;失败读取 msg
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
使用当前签名账号、当前网站的实际价格。非单价接口;需要单价请 num=1。
参数 类型 必填 说明 示例值
codestring 是 商品对接 CODE,不是商品数字 ID PRODUCT_CODE numinteger 是 购买数量,正整数 1 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值 card_idinteger 否 预选卡 ID;不预选传 0 0 couponstring 否 优惠券码
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/valuation
code=PRODUCT_CODE&num=1&card_id=0
返回字段 data.price:所选数量和规格的商品报价
成功响应示例(节选) {
"code": 200,
"data": {
"price": "3.00"
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
仅支持已启用预选的商品;不会返回未售卡密正文。
参数 类型 必填 说明 示例值
codestring 是 商品对接 CODE,不是商品数字 ID PRODUCT_CODE pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/draftCard
code=PRODUCT_CODE&page=1&limit=10
返回字段 data.list[]:id、draft(预选描述)、draft_premium(预选加价)
data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [
{
"id": 1,
"draft": "示例描述",
"draft_premium": "0.00"
}
],
"total": 1
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
该接口不是最终报价,最终应以 valuation / trade 为准。
参数 类型 必填 说明 示例值
codestring 是 商品对接 CODE,不是商品数字 ID PRODUCT_CODE card_idinteger 是 预选卡 ID 1 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/draft
code=PRODUCT_CODE&card_id=1
返回字段 data.draft_premium:预选加价;data.cost:该卡记录的 cost 字段
成功响应示例(节选) {
"code": 200,
"data": {
"draft_premium": "0.00",
"cost": "0.00"
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:创建订单、扣余额、可能发货
强制使用签名账号余额付款,不接受 pay_id 切换。商品须允许余额支付。动态控件按商品 widget 中的 name 直接提交;数量、联系方式和查单密码受商品配置限制。request_no 重复会报错,不会返回旧订单;超时后先核对既有订单,勿盲目更换请求号重复购买。
参数 类型 必填 说明 示例值
shared_codestring 是 商品对接 CODE PRODUCT_CODE numinteger 是 购买数量,正整数 1 deviceinteger 是 设备:0 电脑、1 安卓、2 iOS、3 iPad 0 contactstring 否 按商品要求填写联系方式 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值 card_idinteger 否 预选卡 ID;不预选传 0 0 couponstring 否 优惠券码 passwordstring 否 查单密码;按商品配置要求填写 request_nostring 否 调用方请求号,最长 19 字符;建议使用唯一数字请求号 reservation_confirminteger 否 库存不足且确需预订时传 1
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/trade
shared_code=PRODUCT_CODE&num=1&device=0&card_id=0
返回字段 data.tradeNo:生成的订单号;amount:订单应付金额
secret:即时交付内容;url:支付跳转地址(余额单通常为空)
stock:下单后的库存;leave_message:已支付订单的商家留言
group_buy_team_id / group_buy_free_open / group_buy_share_url:拼团信息
成功响应示例(节选) {
"code": 200,
"data": {
"tradeNo": "123261103120000456",
"amount": "3.00",
"url": "",
"secret": "示例交付内容",
"leave_message": "",
"stock": "9"
}
}
分组:签名对接 API 认证:签名 app_id + sign
请求编码:application/x-www-form-urlencoded 操作:查询
只能查询 owner 为当前签名账号的订单。未支付或未交付时 secret 可能为空。
参数 类型 必填 说明 示例值
tradeNostring 是 平台返回的订单号,不是 request_no 123261103120000456
请求示例(业务参数;认证按上方说明补充) POST /shared/commodity/query
tradeNo=123261103120000456
返回字段 data.status:订单状态
data.secret:交付内容;widget:下单控件内容或 null
data.leave_message:仅已支付订单返回商家留言
成功响应示例(节选) {
"code": 200,
"data": {
"status": 1,
"secret": "示例交付内容",
"widget": null,
"leave_message": ""
}
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
分类可见性由当前网站及会员身份决定。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/index/data
返回字段 data[]:分类树,包含 id、name 等分类字段
成功响应示例(节选) {
"code": 200,
"data": [
{
"id": 1,
"name": "示例分类"
}
]
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
limit=0 表示不分页;建议分页调用。列表展示价不能当作成交价,最终以 valuation / 下单为准。
参数 类型 必填 说明 示例值
categoryIdstring 否 0=全部;分类 ID;recommend=推荐 0 keywordsstring 否 名称或标签关键词 pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) GET /user/api/index/commodity
categoryId=0&page=1&limit=10
返回字段 data[]:商品数组;total:顶层总数(不是 data.list / data.total)
id / name / cover:商品信息;price / user_price:价格;display_price:列表展示价
stock / stock_state / inventory_hidden:库存显示;reservation_enabled:是否支持预订
成功响应示例(节选) {
"code": 200,
"data": [],
"total": 0
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
读取商品配置后再报价、下单。
参数 类型 必填 说明 示例值
commodityIdinteger 是 商品数字 ID,不是 CODE 1
请求示例(业务参数;认证按上方说明补充) GET /user/api/index/commodityDetail
commodityId=1
返回字段 data:商品详情,包括 config、stock、规格和下单控件
reservation_enabled / group_buy_enabled / group_buy_rules:预订及拼团配置
成功响应示例(节选) {
"code": 200,
"data": {
"id": 1,
"name": "示例商品",
"config": [],
"stock": 10
}
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
不会创建订单或扣余额。支付手续费以最终订单金额为准。
参数 类型 必填 说明 示例值
item_idinteger 是 商品数字 ID 1 numinteger 是 购买数量,正整数 1 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值 card_idinteger 否 预选卡 ID;不预选传 0 0 couponstring 否 优惠券码
请求示例(业务参数;认证按上方说明补充) POST /user/api/index/valuation
item_id=1&num=1&card_id=0
返回字段 data.price:所选规格及数量的商品报价
成功响应示例(节选) {
"code": 200,
"data": {
"price": "3.00"
}
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
人工发货可能使用虚拟库存显示值,库存不代表立即交付承诺。
参数 类型 必填 说明 示例值
item_idinteger 是 商品数字 ID 1 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /user/api/index/stock
item_id=1
返回字段 data.stock / stock_raw:库存显示值与接口提供的原始值
stock_state:库存状态;reservation_enabled:是否支持预订;manual_delivery:是否人工发货
成功响应示例(节选) {
"code": 200,
"data": {
"stock": 10,
"stock_raw": 10,
"stock_state": 1,
"reservation_enabled": true,
"manual_delivery": 0
}
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
按设备、登录状态和商品支付限制过滤;游客不返回余额支付。
参数 类型 必填 说明 示例值
itemIdinteger 否 按商品过滤支付方式 1
请求示例(业务参数;认证按上方说明补充) GET /user/api/index/pay
itemId=1
返回字段 data[]:id、name、icon、handle
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:前台商品与查单 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
需商品支持预选。
参数 类型 必填 说明 示例值
item_idinteger 是 商品数字 ID 1 pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值
请求示例(业务参数;认证按上方说明补充) POST /user/api/index/card
item_id=1&page=1&limit=10
返回字段 data.list[]:预选卡信息;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:前台商品与查单 认证:游客或会员;登录会员需 CSRF
请求编码:application/x-www-form-urlencoded 操作:创建订单、支付或预订
动态下单控件按商品配置额外提交。余额支付会实际扣款;其余方式可能生成支付跳转地址。不要在文档页面测试创建订单。
参数 类型 必填 说明 示例值
item_idinteger 是 商品数字 ID 1 numinteger 是 购买数量,正整数 1 pay_idinteger 是 从支付方式接口取得 1 contactstring 否 按商品配置填写 racestring 否 商品类别名称,原样使用商品配置返回值 skuobject 否 规格名到选项值的映射。表单示例:sku[规格名]=选项值 card_idinteger 否 预选卡 ID;不预选传 0 0 couponstring 否 优惠券码 passwordstring 否 按商品配置填写查单密码 order_notice_confirmedinteger 否 启用下单提示时,用户阅读确认后传 1 captcha_proofstring 否 启用下单验证时,使用本站验证流程取得 reservation_confirminteger 否 库存不足且用户确认预订时传 1 group_buy_rule_idinteger 否 开团规则 ID group_buy_team_idinteger 否 参团团队 ID group_buy_share_user_idinteger 否 邀请人会员 ID group_buy_share_tokenstring 否 有效拼团邀请 token
请求示例(业务参数;认证按上方说明补充) POST /user/api/order/trade
item_id=1&num=1&pay_id=1&card_id=0
返回字段 data.tradeNo:生成的订单号;amount:订单应付金额
secret:即时交付内容;url:支付跳转地址(余额单通常为空)
stock:下单后的库存;leave_message:已支付订单的商家留言
group_buy_team_id / group_buy_free_open / group_buy_share_url:拼团信息
成功响应示例(节选) {
"code": 200,
"data": {
"tradeNo": "123261103120000456",
"amount": "3.00",
"url": "",
"secret": ""
}
}
分组:前台商品与查单 认证:无需登录;需有效订单号
请求编码:application/x-www-form-urlencoded 操作:查询网关,可能补单发货
对于支持的易支付渠道,未支付订单会触发网关查单并可能完成本地补单、发货和结算。因此不提供在线测试;避免频繁轮询。
参数 类型 必填 说明 示例值
tradeNostring 是 18 位订单号 123261103120000456
请求示例(业务参数;认证按上方说明补充) POST /user/api/order/state
tradeNo=123261103120000456
返回字段 data.id / trade_no / amount / status:本地订单状态
成功响应示例(节选) {
"code": 200,
"data": {
"id": 1,
"trade_no": "123261103120000456",
"amount": 3,
"status": 1
}
}
分组:前台商品与查单 认证:无需登录;有频率限制
请求编码:application/x-www-form-urlencoded 操作:查询
含订单及联系方式信息,不提供文档在线测试。
参数 类型 必填 说明 示例值
keywordsstring 是 18 位订单号或下单联系方式 123261103120000456 pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/index/query
keywords=123261103120000456&page=1&limit=10
返回字段 data.list[]:订单记录;data.total:总数
未支付或设置查单密码时不会直接返回 secret
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:前台商品与查单 认证:需有效订单号;设置密码时需匹配
请求编码:application/x-www-form-urlencoded 操作:查询
必须已支付;预订待补货状态会返回错误。请勿将查单密码放进 URL。
参数 类型 必填 说明 示例值
tradeNostring 是 18 位订单号 123261103120000456 passwordstring 否 订单设置的查单密码
请求示例(业务参数;认证按上方说明补充) POST /user/api/index/secret
tradeNo=123261103120000456
返回字段 data.secret:交付内容;widget:控件数据或 null;leave_message:商家留言
成功响应示例(节选) {
"code": 200,
"data": {
"secret": "示例交付内容",
"widget": null,
"leave_message": ""
}
}
分组:前台商品与查单 认证:无需登录
请求编码:application/x-www-form-urlencoded 操作:查询
通知展示仍受站点配置影响。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/publicMessage/popup
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:前台商品与查单 认证:无需登录
请求编码:application/x-www-form-urlencoded 操作:查询
返回配置字段。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/site/info
返回字段 data.shop_name / title / description / keywords:站点信息
user_theme / registered_state / notice:主题、注册状态、公告
成功响应示例(节选) {
"code": 200,
"data": {
"shop_name": "示例商城",
"title": "示例标题"
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
不能通过传 owner 或 user_id 查询其他会员订单。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 equal-trade_nostring 否 精确订单号 equal-statusinteger 否 订单状态
请求示例(业务参数;认证按上方说明补充) POST /user/api/purchaseRecord/data
page=1&limit=10
返回字段 data.list[]:当前会员自己的订单,含 commodity、pay 关联信息
data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
硬币 balance 可能因退款追佣为负数;余额与硬币是独立账户。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 equal-currencyinteger 否 0=余额;1=硬币 equal-typeinteger 否 0=支出;1=收入 equal-source_typestring 否 例如 substation_commission、commission_refund
请求示例(业务参数;认证按上方说明补充) POST /user/api/bill/data
page=1&limit=10
返回字段 data.list[]:amount、balance、type、currency、log、create_time
source_type / source_label / order_id:来源与关联订单
data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
limit 最大 100。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 search-contentstring 否 操作内容关键词 equal-create_ipstring 否 精确 IP betweenStart-create_timestring 否 起始时间 YYYY-MM-DD HH:mm:ss betweenEnd-create_timestring 否 结束时间 YYYY-MM-DD HH:mm:ss
请求示例(业务参数;认证按上方说明补充) POST /user/api/operationLog/data
page=1&limit=10
返回字段 data.list[]:当前会员操作记录;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
仅当前会员;limit 最大 100。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 equal-trade_nostring 否 精确订单号
请求示例(业务参数;认证按上方说明补充) POST /user/api/reservation/data
page=1&limit=10
返回字段 data.list[]:已支付且待补货的订单
delivered_num / pending_num / spec_label:已交付数量、待交付数量、规格
data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:取消预订、退款
仅允许取消本人仍可取消的待交付部分,资金按预订退款规则退回余额。
参数 类型 必填 说明 示例值
idinteger 是 预订订单数字 ID 1
请求示例(业务参数;认证按上方说明补充) POST /user/api/reservation/cancel
id=1
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
仅返回当前设备可用且已开启充值的方式。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/recharge/pay
返回字段 data[]:id、name、icon、handle
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:创建充值订单
创建后需完成付款;到账由支付回调或查单补单决定。
参数 类型 必填 说明 示例值
pay_idinteger 是 充值支付方式 ID 10 amountnumber 是 充值本金,受站点最低/最高金额限制 10.00
请求示例(业务参数;认证按上方说明补充) POST /user/api/recharge/trade
pay_id=10&amount=10.00
返回字段 data.url:支付地址;amount:应付金额;tradeNo:充值订单号
成功响应示例(节选) {
"code": 200,
"data": {
"url": "https://payment.example/",
"amount": "10.00",
"tradeNo": "123261103120000456"
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:multipart/form-data 操作:上传图片并新增记录
必须 multipart/form-data;限制单边不超过 4096 像素且不超过 800 万像素。需服务器 GD 及可用 OSS 配置;不能用 URL 编码模拟文件。
参数 类型 必填 说明 示例值
filefile 是 JPG / PNG / GIF / WebP 图片,最大 5MB
请求示例(业务参数;认证按上方说明补充) POST /user/api/upload/send?mime=image
返回字段 data.url / path:OSS 图片地址;append:附加信息数组
成功响应示例(节选) {
"code": 200,
"data": {
"url": "https://images.example/avatar.png",
"path": "https://images.example/avatar.png",
"append": []
}
}
分组:会员账户与订单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
仅查询当前会员。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/upload/get
page=1&limit=10
返回字段 data.list[]:当前会员上传记录及 thumb_url;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:拼团 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
规则与可售商品配置有关。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/groupBuy/rules
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:拼团 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
未登录返回空数组;不会返回陌生人的团。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) GET /user/api/groupBuy/mine
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:拼团 认证:无需登录;登录后按当前会员身份返回
请求编码:application/x-www-form-urlencoded 操作:查询
未登录返回空数组;不会返回陌生人的团。
参数 类型 必填 说明 示例值
limitinteger 否 hall 支持 1–100;mine 不接收此参数 10
请求示例(业务参数;认证按上方说明补充) GET /user/api/groupBuy/hall
limit=10
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:拼团 认证:团成员登录,或有效成员邀请参数
请求编码:application/x-www-form-urlencoded 操作:查询
非团成员必须携带有效邀请;不支持公开遍历团队。
参数 类型 必填 说明 示例值
tidinteger 是 团队 ID;兼容 team_id 1 uidinteger 否 邀请人会员 ID tokenstring 否 邀请校验 token
请求示例(业务参数;认证按上方说明补充) GET /user/api/groupBuy/detail
tid=1
返回字段 data:团队详情;share_user_id / share_valid / login:邀请及登录信息
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:拼团 认证:需要登录;建议携带 CSRF
请求编码:application/x-www-form-urlencoded 操作:退出或解散团队、退款
团长退出会解散整团,团员只退出自己;款项按规则退回账号余额。
参数 类型 必填 说明 示例值
team_idinteger 是 本人参加的未成团团队 ID 1
请求示例(业务参数;认证按上方说明补充) POST /user/api/groupBuy/leave
team_id=1
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
返回最近通知及相关摘要。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/recent
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
返回当前需要确认阅读的通知。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/forced
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
按当前登录会员返回首页弹窗通知。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/popup
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
展示范围由通知服务控制。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/data
page=1&limit=10
返回字段 data:当前会员可见的通知列表及分页数据
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查看通知,可能更新已读
查看可能更新阅读状态。
参数 类型 必填 说明 示例值
idinteger 是 通知 ID 1
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/detail
id=1
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员通知 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:更新阅读状态
只允许确认当前会员可见通知。
参数 类型 必填 说明 示例值
idinteger 是 通知 ID 1
请求示例(业务参数;认证按上方说明补充) POST /user/api/message/confirm
id=1
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
不接受用户 ID 来切换所有者。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/data
page=1&limit=10
返回字段 data.list[]:本人可见工单;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查看工单,可能更新未读
仅本人可见工单;查看可能更新未读状态。
参数 类型 必填 说明 示例值
idinteger 是 工单 ID 1 limitinteger 否 初始消息条数,默认 30 30
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/detail
id=1&limit=30
返回字段 data.ticket:工单详情;messages:消息;has_more:是否还有历史消息
成功响应示例(节选) {
"code": 200,
"data": {
"ticket": [],
"messages": [],
"has_more": false
}
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
仅本人有权查看的工单。
参数 类型 必填 说明 示例值
idinteger 是 工单 ID 1 after_idinteger 否 获取该消息 ID 之后的消息 0 before_idinteger 否 获取该消息 ID 之前的历史消息 0 limitinteger 否 默认 50 50
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/messages
id=1&after_id=0&before_id=0&limit=50
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:查询
无工单功能时返回 0。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/badge
返回字段 data.count:当前会员工单未读消息总数
成功响应示例(节选) {
"code": 200,
"data": {
"count": 0
}
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:创建工单
售后凭证、订单归属、标题及内容长度受服务端校验。十分钟最多创建五次。
参数 类型 必填 说明 示例值
typeinteger 是 0 售前;1 售后 0 titlestring 是 工单标题 商品咨询 contentstring 是 工单内容 请问该商品如何使用? priorityinteger 否 0 低、1 中、2 高;默认 1 1 commodity_idinteger 否 售前可关联商品 ID order_idinteger 否 售后需关联本人订单 ID,或提供 order_trade_no order_trade_nostring 否 售后订单号 proof_upload_idinteger 否 售后凭证上传记录 ID,是否必填取决于订单校验
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/create
type=0&title=%E5%95%86%E5%93%81%E5%92%A8%E8%AF%A2&content=%E8%AF%B7%E9%97%AE%E8%AF%A5%E5%95%86%E5%93%81%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%EF%BC%9F&priority=1
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:application/x-www-form-urlencoded 操作:新增回复
仅本人可回复的工单。
参数 类型 必填 说明 示例值
idinteger 是 工单 ID 1 contentstring 是 回复内容 补充说明
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/reply
id=1&content=%E8%A1%A5%E5%85%85%E8%AF%B4%E6%98%8E
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:会员工单 认证:登录 Cookie + X-CSRF-Token
请求编码:multipart/form-data 操作:上传附件
使用 multipart/form-data;后续提交凭证需使用实际返回值。
参数 类型 必填 说明 示例值
filefile 是 工单图片附件
请求示例(业务参数;认证按上方说明补充) POST /user/api/ticket/upload
返回字段 data:上传结果,包括服务端返回的凭证引用
成功响应示例(节选) {
"code": 200,
"data": []
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;对应商户或分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
仅本人管理的分类。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/category/data
page=1&limit=10
返回字段 data.list[]:分类记录及 share_url;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;对应商户或分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
商户权限以账号等级为准;不是前台公开商品列表。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/commodity/data
page=1&limit=10
返回字段 data.list[]:本人商品及统计;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;对应商户或分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
与购买记录、分站销售订单分开。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/commodityOrder/data
page=1&limit=10
返回字段 data.list[]:当前会员作为商品卖家的订单;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;对应商户或分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
按 substation_user_id 确定归属,不返回卡密、联系方式和订单密码。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10
请求示例(业务参数;认证按上方说明补充) POST /user/api/substationOrder/data
page=1&limit=10
返回字段 data.list[]:本站及权限范围内下级分站订单;data.total:总数
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;对应商户或分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
需要已开通分站;keyword 为完整会员账号精确匹配,仅限本站有联系记录的会员,limit 最大 50。
参数 类型 必填 说明 示例值
pageinteger 否 页码,从 1 开始 1 limitinteger 否 每页数量,建议 10;上限以接口说明为准 10 keywordstring 否 完整会员账号,精确匹配
请求示例(业务参数;认证按上方说明补充) POST /user/api/businessMemberLevel/members
page=1&limit=10
成功响应示例(节选) {
"code": 200,
"data": {
"list": [],
"total": 0
}
}
分组:分站与商家 认证:登录 Cookie + X-CSRF-Token;分站权限
请求编码:application/x-www-form-urlencoded 操作:查询
只读等级配置,不调整会员等级。
业务参数:无。签名接口仍须携带 app_id 与 sign。
请求示例(业务参数;认证按上方说明补充) POST /user/api/businessMemberLevel/data
成功响应示例(节选) {
"code": 200,
"data": []
}