V1 已停止维护

V1 接口仅保留现有能力,不再新增功能。新项目接入或需要更多功能,请使用 V2 接口。

API v1.0 · 生产契约

无限聚核开放平台团购核销 V1 API

面向无人自助业态提供美团、抖音团购券查询与核销能力。本页展示 6 个已有生产样本确认的公开接口,并补充代码确认的授权接口。

美团已接入抖音已接入6 个生产已确认接口 + 授权接口
API Hosthttps://open-hx.umember.cn
Authorization裸 Token
已确认范围6 条公开路径

快速接入

按以下顺序完成 V1 核销链路接入。

1

获取 V1 Token

调用 /open/login,使用注册邮箱与密码获取 V1 Token。后续请求在 Authorization 请求头中直接传 Token,不加 Bearer。

2

获取系统门店 ID

调用 /open/user/meituan/store/list,从安全业务字段 data[].child_stores[].store_id 中取得后续查询与核销使用的系统门店 ID。

3

先查券详情,再确认核销

先调用 /open/user/meituan/coupon/detail 并检查 data.status_code;确认券可用后,再由用户明确触发 /open/user/meituan/coupon/verify。超时或结果未知时不要自动重试。

美团合作授权

无限聚核已获得美团技术服务合作授权,为商户提供相关 API 产品服务。

宁德无限递归网络科技有限公司美团合作授权书
美团合作授权书 · 点击图片可查看原图

授权接口

该接口已通过代码确认,用于获取后续接口所需的 V1 Token;示例账号、密码及返回值均已脱敏。

POST/open/login获取 Token代码确认 · 授权接口

使用注册邮箱与密码获取 V1 Token。后续接口在 Authorization 请求头中直接传 Token,不加 Bearer。

鉴权方式

无需鉴权无需 Authorization 请求头。

Content-Type

application/json

请求参数

参数类型必填说明
emailstring注册邮箱。
passwordstring登录密码。

请求示例 · 已脱敏

JSON
{
  "email": "user@example.com",
  "password": "<登录密码>"
}
响应字段6 个字段
参数类型说明
codenumber外层业务码;成功时为 10000。
msgstring外层业务消息。
dataobject登录用户与 Token 数据。
data.tokenstring后续 V1 接口使用的 Token;请求头直接传值,不加 Bearer。
countnumber响应记录数。
date_timestring服务端响应时间。

代码确认 · 成功响应(敏感字段已脱敏)

JSON
{
  "code": 10000,
  "msg": "success",
  "data": {
    "username": "示例用户",
    "id": 10000,
    "phone": "138****0000",
    "token": "<V1_TOKEN>",
    "openid": "",
    "sessionKey": ""
  },
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}

生产已确认接口

以下 6 条路径已获得生产真实样本确认,但可信范围仅限各接口 badge 和 notes 明确列出的场景。

GET/open/user/meituan/coupon/list美团套餐列表生产已确认 · 第 1 页非空成功

获取指定系统门店在美团上的套餐列表。已确认金额字段为 string,两个 SKU ID 字段为 number。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

查询参数

参数类型必填说明
store_idnumber | numeric string系统门店 ID,当前 Token 所属账号必须拥有该门店。
pagenumber | numeric string页码;生产已确认 page=1 的非空成功场景。默认值:1

HTTP

HTTP
GET /open/user/meituan/coupon/list?store_id=<系统门店 ID>&page=1
Authorization: <V1_TOKEN>
响应字段13 个字段
参数类型说明
codenumber外层业务码;本次非空成功样本为 10000。
msgstring外层消息;本次非空成功样本为 success。
dataarray美团套餐数组。空页形态尚未实测确认。
data[].actual_amountstring套餐实际价格,字符串类型。
data[].origin_amountstring套餐原价,字符串类型。
data[].product_namestring套餐名称。
data[].sku_idnumber美团团单 ID。
data[].dp_sku_idnumber点评团单 ID。
data[].sku_namestring套餐名称兼容字段。
data[].statusnumberV1 套餐状态;本次样本为 3。
data[].status_textstring套餐状态文本,例如售卖中或已下线。
countnumber本次生产样本中等于当前返回数组条数;其他分页场景仍待确认。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

生产确认字段 · 全部业务值均为虚构或掩码

JSON
{
  "code": 10000,
  "msg": "success",
  "data": [
    {
      "actual_amount": "79.90",
      "origin_amount": "99.00",
      "product_name": "示例套餐",
      "sku_id": 90001,
      "dp_sku_id": 90002,
      "sku_name": "示例套餐",
      "status": 3,
      "status_text": "售卖中"
    }
  ],
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}
GET/open/user/douyin/coupon/list抖音套餐列表生产已确认 · 非空成功

获取指定系统门店在抖音上的套餐列表。已确认金额为 number,sku_id 为 string。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

查询参数

参数类型必填说明
store_idnumber | numeric string系统门店 ID,当前 Token 所属账号必须拥有该门店。
countnumber | numeric string期望每页条数;小于 1 时恢复为默认值。wxdg 路由当前不会将该参数传给 Node 下游。默认值:10
pagenumber | numeric string页码;小于 1 时恢复为默认值。wxdg 路由当前不会将该参数传给 Node 下游。默认值:1

HTTP

HTTP
GET /open/user/douyin/coupon/list?store_id=<系统门店 ID>&count=10&page=1
Authorization: <V1_TOKEN>
响应字段10 个字段
参数类型说明
codenumber外层业务码;本次非空成功样本为 10000。
msgstring外层消息;本次非空成功样本为 success。
dataarray抖音套餐数组。空结果形态尚未实测确认。
data[].actual_amountnumber套餐实际价格,number 类型。
data[].origin_amountnumber套餐原价,number 类型。
data[].product_namestring套餐名称。
data[].sku_idstring抖音 SKU ID,字符串类型。
data[].sku_namestring套餐名称兼容字段。
countnumber本次生产样本中等于当前返回数组条数。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

生产确认字段 · 全部业务值均为虚构或掩码

JSON
{
  "code": 10000,
  "msg": "success",
  "data": [
    {
      "actual_amount": 59.9,
      "origin_amount": 79.9,
      "product_name": "示例套餐",
      "sku_id": "DY_SKU_***",
      "sku_name": "示例套餐"
    }
  ],
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}
GET/open/user/meituan/coupon/detail历史混合团购券详情生产已确认 · 未使用与已使用

查询团购券详情。该历史路径可能先尝试抖音再回退美团,因此路径中的 meituan 不代表最终 coupon_channel。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

查询参数

参数类型必填说明
store_idnumber | numeric string系统门店 ID,当前 Token 所属账号必须拥有该门店。
coupon_codestring团购券码;美团路径会去除空格,抖音分享链接可能被解析。

HTTP

HTTP
GET /open/user/meituan/coupon/detail?store_id=<系统门店 ID>&coupon_code=<已掩码券码>
Authorization: <V1_TOKEN>
响应字段15 个字段
参数类型说明
codenumber外层业务码;已使用场景也可能为 10000,不能单独判断券是否可用。
msgstring外层消息;可能是 success、Success 或上游业务提示。
dataobject券详情对象。
data.sku_idstring套餐 SKU ID;已使用失败样本中为兼容占位值。
data.pricenumber套餐价格;已使用失败样本中为 0。
data.order_idstring订单号;已使用失败样本中为空字符串。
data.sku_namestring套餐名称;已使用失败样本中可能为空字符串。
data.statusstring券状态文本;已确认未使用和已使用。
data.status_codenumber券状态码;已确认 0 表示未使用、1 表示已使用。调用方必须判断此字段。
data.coupon_channelmeituan | douyin实际识别出的券渠道,不能根据 URL 路径推断。
data.coupon_codestring业务侧原始券码,属于敏感数据;展示和日志必须脱敏。
data.certificate_idstring抖音券且存在证书标识时返回。
data.rawDataunknown仅部分美团未使用场景存在的上游原始数据;敏感且结构不稳定,不应展示、复制或依赖。
countnumber已确认详情响应为 1。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

生产已确认 · 未使用(敏感字段已掩码,rawData 不展示)

JSON
{
  "code": 10000,
  "msg": "Success",
  "data": {
    "sku_id": "MT_SKU_***",
    "price": 79.9,
    "order_id": "ORDER_***",
    "sku_name": "示例套餐",
    "status": "未使用",
    "status_code": 0,
    "coupon_channel": "meituan",
    "coupon_code": "****1234"
  },
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}

生产已确认 · 已使用(业务消息已脱敏)

JSON
{
  "code": 10000,
  "msg": "<已使用业务提示已脱敏>",
  "data": {
    "sku_id": "0",
    "price": 0,
    "order_id": "",
    "sku_name": "",
    "status": "已使用",
    "status_code": 1,
    "coupon_channel": "meituan",
    "coupon_code": "****1234"
  },
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}
POST/open/user/meituan/coupon/verify历史混合核销生产已确认 · 重复拦截场景

核销美团或抖音团购券。当前生产实测仅确认重复/已使用券由 Go 历史记录拦截;首次成功核销结构仍是代码推导。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

请求参数

参数类型必填说明
store_idnumber | numeric string系统门店 ID,当前 Token 所属账号必须拥有该门店。
coupon_codestring团购券码;服务端会去除空格。

JSON · 全部业务值均为掩码占位符

JSON
{
  "store_id": 10001,
  "coupon_code": "****1234"
}
响应字段16 个字段
参数类型说明
codenumber外层业务码;代码推导的首次成功为 10000,生产确认的重复拦截为 10500。
msgstring外层消息。重复拦截时包含已核销业务提示,展示前必须脱敏。
dataobject订单已创建时的核销结果或最小订单定位对象;建单前失败不包含 data。
data.wxdgOrderNostring无限聚核系统账单订单号。首次成功、成功重放、明确拒绝、结果未知及已建单处理异常时返回。
data.verify_messagestring核销结果消息;首次成功结构为代码推导。
data.verify_successboolean核销是否成功;存在 data 时必须判断此字段,不能只判断外层 code。
data.consume_detailsarray消费金额等核销明细;首次成功完整结构尚未生产实测。
data.consume_details[].amountstring金额展示文本。
data.consume_details[].amountNamestring金额项目名称。
data.consume_details[].amountSubNamestring金额项目补充名称。
data.consume_details[].hasPaymentboolean是否包含支付信息。
data.coupon_channelmeituan | douyin实际核销渠道。
data.coupon_codestring业务券码,属于敏感数据;展示和日志必须脱敏。
data.certificate_idstring抖音券且存在证书标识时返回。
countnumber首次成功时可能存在;重复拦截实测响应不包含 count。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

代码推导 · 首次成功结构(尚未生产实测)

JSON
{
  "code": 10000,
  "msg": "success",
  "data": {
    "verify_message": "验证成功",
    "verify_success": true,
    "consume_details": [
      {
        "amount": "¥79.90",
        "amountName": "消费金额",
        "amountSubName": "",
        "hasPayment": false
      }
    ],
    "coupon_channel": "meituan",
    "coupon_code": "****1234",
    "wxdgOrderNo": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
  },
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}

生产已确认 · 重复/已使用拦截

JSON
{
  "code": 10500,
  "msg": "<已核销时间与门店信息已脱敏>",
  "data": {
    "wxdgOrderNo": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
  },
  "date_time": "2099-01-01 12:00:00"
}
GET/open/user/meituan/store/list商户/门店列表生产已确认 · 非空成功

获取当前 Token 所属账号的商户和门店。公开文档只列安全业务白名单字段;响应中可能存在的内部配置字段不属于公开契约。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

HTTP

HTTP
GET /open/user/meituan/store/list
Authorization: <V1_TOKEN>
响应字段21 个字段
参数类型说明
codenumber外层业务码;本次非空成功样本为 10000。
msgstring外层消息;本次非空成功样本为 success。
dataarray商户数组。空结果形态尚未实测确认。
data[].store_idnumber商户的系统内部 ID。
data[].store_namestring商户名称。
data[].request_countnumber商户剩余核销次数。
data[].expire_timestring授权或服务过期时间。
data[].statusnumber商户状态。具体枚举仍需补充确认。
data[].child_storesarray商户下的门店列表。
data[].child_stores[].store_idnumber系统门店 ID;后续套餐、详情和核销接口使用此值。
data[].child_stores[].store_namestring门店名称。
data[].child_stores[].meituan_store_idstring美团平台门店 ID;未绑定时可能为空。
data[].child_stores[].douyin_store_idstring抖音平台门店 ID;未绑定时可能为空。
data[].child_stores[].meituan_authnumber美团授权状态。具体枚举仍需补充确认。
data[].child_stores[].douyin_authnumber抖音授权状态。具体枚举仍需补充确认。
data[].child_stores[].enable_new_apinumber是否启用新接口链路的业务标记。
data[].child_stores[].only_douyinnumber | boolean是否为抖音专属门店的兼容标记。
data[].child_stores[].addressstring门店地址。
data[].child_stores[].city_namestring门店所在城市。
countnumber当前生产样本中 count 与 data.length 不一致,不能作为数组长度或可靠总数。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

生产确认字段 · 全部示例值均为掩码占位符

JSON
{
  "code": 10000,
  "msg": "success",
  "data": [
    {
      "store_id": 10000,
      "store_name": "示例商户 A",
      "request_count": 1200,
      "expire_time": "2099-12-31 23:59:59",
      "status": 1,
      "child_stores": [
        {
          "store_id": 10001,
          "store_name": "示例门店",
          "meituan_store_id": "MT_STORE_***",
          "douyin_store_id": "",
          "meituan_auth": 1,
          "douyin_auth": 0,
          "enable_new_api": 1,
          "only_douyin": 0,
          "address": "<门店地址已脱敏>",
          "city_name": "<城市已脱敏>"
        }
      ]
    },
    {
      "store_id": 20000,
      "store_name": "示例商户 B",
      "request_count": 0,
      "expire_time": "2099-12-31 23:59:59",
      "status": 1,
      "child_stores": []
    }
  ],
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}
POST/open/user/request/logs核销请求记录生产已确认 · 默认分页非空成功

分页查询当前账号名下门店的核销请求记录。该接口当前可能返回未递归脱敏的原始 params,公开页面必须限制展示、复制和测试。

鉴权方式

需要鉴权Authorization 请求头直接传 V1 Token,不加 Bearer。

Content-Type

application/json

请求头

参数类型必填说明
AuthorizationstringV1 Token,直接传 Token 值,不加 Bearer。

请求参数

参数类型必填说明
pagenumber | numeric string页码;缺省或小于等于 0 时使用默认值。默认值:1
rowsnumber | numeric string每页条数;缺省或小于等于 0 时使用默认值。默认值:10
store_idnumber | numeric string按系统门店 ID 过滤;只允许查询当前账号名下门店,无权限 ID 返回空列表。
begin_timestring开始时间过滤值,当前实现原样传入查询;格式边界仍待实测。
end_timestring结束时间过滤值,当前实现原样传入查询;格式边界仍待实测。

JSON · 默认分页

JSON
{
  "page": 1,
  "rows": 10
}
响应字段15 个字段
参数类型说明
codenumber外层业务码;本次默认分页非空成功样本为 10000。
msgstring外层消息;本次样本为 success。
dataarray当前页核销记录数组。空结果形态尚未实测确认。
data[].store_idnumber系统门店 ID。
data[].store_namestring门店名称。
data[].update_modestring核销扣减模式,例如次数或 token。
data[].update_typestring扣减主体,例如 store 或 admin。
data[].used_tokensnumbertoken 模式下由分换算为元;非 token 模式为 0。属于敏感业务数据,展示时应按权限处理。
data[].api_namestring核销请求的接口名称。
data[].coupon_channelstring券渠道,例如 meituan 或 douyin。
data[].coupon_codestring券码,属于敏感数据;公开展示、复制和日志必须脱敏。
data[].paramsstring历史请求参数 JSON 字符串;可能包含 ticketInfo、券码和平台账号参数。服务端递归脱敏完成前不得展示、复制或用于在线测试。
data[].created_atstring记录创建时间,格式 YYYY-MM-DD HH:mm:ss。
countnumber数据库查询总数,不是当前页 data.length。
date_timestring服务端响应时间,格式 YYYY-MM-DD HH:mm:ss。

生产确认字段 · params 已刻意省略,其他业务值均为掩码

JSON
{
  "code": 10000,
  "msg": "success",
  "data": [
    {
      "store_id": 10001,
      "store_name": "<门店名称已脱敏>",
      "update_mode": "count",
      "update_type": "store",
      "used_tokens": 0,
      "api_name": "核销验券",
      "coupon_channel": "meituan",
      "coupon_code": "****1234",
      "created_at": "2099-01-01 12:00:00"
    }
  ],
  "count": 1,
  "date_time": "2099-01-01 12:00:00"
}

接口调用流程

V1 公开核销链路建议按以下顺序调用。

A

团购券查询与核销

  1. 从开发者后台获取 V1 Token,并在 Authorization 请求头中直接传递。
  2. 调用商户/门店列表,取得当前账号名下的系统门店 store_id。
  3. 按平台调用美团或抖音套餐列表,用于展示可售套餐。
  4. 调用历史混合团购券详情,检查 data.status_code;code=10000 不能单独代表券可用。
  5. 由用户明确确认后调用核销接口,并判断 data.verify_success;业务异常通常仍为 HTTP 200。
  6. 核销超时或结果未知时不要自动重试;先通过安全的业务记录或人工流程确认最终状态。