Skip to content

订阅查询

三个只读接口:主订单详情(含期次列表)/ 渠道用户订阅列表 / 单期子订单详情。 返回结构对 CXH_DEDUCT / CHANNEL_COLLECT 两种模式通用,差异通过 settlementModepaymentStatus 区分(BILLED 仅用于 B 模式,详见 字段约定)。 refundAmountCent / totalRefundAmountCent 仅 A 模式有意义(CXH 内部退款时回写)。B 模式 CXH 不参与退款,这两个字段在返回中始终为 0

POST /openapi/v1/orders/query

按 CXH 单号或渠道单号查询主订单详情。

请求

orderNoexternalOrderNo 二选一:

json
{ "orderNo": "SUB..." }
json
{ "externalOrderNo": "ext_xxx" }

响应 data

字段类型说明
orderNostringCXH 主订单号
externalOrderNostring渠道主订单号
createTimestring订单创建时间(yyyy-MM-dd HH:mm:ss)
orderStatusstringINITIALIZING / ACTIVE / UNSUBSCRIBED / COMPLETED / TERMINATED,详见 字段约定
orderSuccessTimestring主订单首次激活(转 ACTIVE)的时间
periodTypestringDAY / MONTH
periodint周期单位倍率
totalCyclesint总期数
totalPaidAmountCentlong累计用户侧支付金额(分);B 模式为已 BILLED 期次对应的用户侧 SPU 金额累计
totalRefundAmountCentlong累计退款金额(分);B 模式始终为 0
nextPayTimestring | null下次扣款 / 开账时间;订单完结或解约后为 null
unsubscribeTimestring | null解约时刻;orderStatus != UNSUBSCRIBED 时为 null
redeemUrlstring | null兑换入口 URL;详见下方说明
paymentRecordsarray期次列表;字段见下方 PaymentRecord
json
{
  "orderNo": "SUB...",
  "externalOrderNo": "ext_xxx",
  "createTime": "2026-04-28 12:00:00",
  "orderStatus": "ACTIVE",
  "orderSuccessTime": "2026-04-28 12:00:01",
  "periodType": "MONTH",
  "period": 1,
  "totalCycles": 12,
  "totalPaidAmountCent": 1990,
  "totalRefundAmountCent": 0,
  "nextPayTime": "2026-05-28 12:00:00",
  "unsubscribeTime": null,
  "redeemUrl": "https://<cxh-h5>/redeem?orderNo=SUB...&appId=test_xxx&channelUserId=u_001&exp=1714003200&sig=xxx",
  "paymentRecords": [
    {
      "paymentOrderNo": "PAY...",
      "cycleNo": 1,
      "expectPayTime": "2026-04-28 12:00:00",
      "paidAt": "2026-04-28 12:00:01",
      "amountCent": 1990,
      "refundAmountCent": 0,
      "paymentStatus": "SUCCESS"
    }
  ]
}

PaymentRecord 字段

字段类型说明
paymentOrderNostring子订单号
cycleNoint期次序号(从 1 开始)
expectPayTimestring计划扣款 / 开账时刻
paidAtstring | null实际扣款 / 开账成功时刻;失败为 null
amountCentlong本期用户侧支付金额(分);B 模式为渠道向用户收取的 SPU 单期金额
refundAmountCentlong本期已退款金额(分);B 模式始终为 0
paymentStatusstringWAIT / PROCESSING / SUCCESS / FAIL_RETRY / FAIL / BILLED / CANCELED / REFUND_*;详见 字段约定

B 模式(CHANNEL_COLLECT)响应示例(paymentStatus=BILLED,paidAt 表示开账成功时刻,amountCent 为用户侧 SPU 单期金额,refundAmountCent 始终为 0):

json
{
  "orderNo": "SUB...",
  "externalOrderNo": "ext_xxx",
  "createTime": "2026-04-28 12:00:00",
  "orderStatus": "ACTIVE",
  "orderSuccessTime": "2026-04-28 12:00:01",
  "periodType": "MONTH",
  "period": 1,
  "totalCycles": 12,
  "totalPaidAmountCent": 1990,
  "totalRefundAmountCent": 0,
  "nextPayTime": "2026-05-28 12:00:00",
  "unsubscribeTime": null,
  "redeemUrl": "https://<cxh-h5>/redeem?orderNo=SUB...&appId=test_xxx&channelUserId=u_001&exp=1714003200&sig=xxx",
  "paymentRecords": [
    {
      "paymentOrderNo": "PAY...",
      "cycleNo": 1,
      "expectPayTime": "2026-04-28 12:00:00",
      "paidAt": "2026-04-28 12:00:01",
      "amountCent": 1990,
      "refundAmountCent": 0,
      "paymentStatus": "BILLED"
    }
  ]
}

redeemUrl 字段:订阅当前存在"已发未消耗"权益时返回(每次查询 exp 重新计算 +7d)。A 模式仅在首扣 SUCCESS返回,其他状态(WAIT / PROCESSING / FAIL_RETRY / FAIL)及全部期次已退完时均为 null。生成与签名规则见 订阅下单 § redeemUrl

unsubscribeTime 字段:订阅已解约(orderStatus=UNSUBSCRIBED)时返回解约时刻;未解约时为 null

POST /openapi/v1/orders/list

按渠道用户列出全部订阅。

请求

字段必填说明
channelUserId渠道侧用户唯一 ID
cycleTypeSINGLE(单周期 SPU) / MULTIPLE(多周期 SPU);不传返回该用户全部订阅
json
{
  "channelUserId": "u_001"
}

响应 data

外层包一层 orders 数组,元素结构与 orders/query 响应一致。

json
{
  "orders": [
    { "orderNo": "SUB...", "orderStatus": "ACTIVE", "...": "..." },
    { "orderNo": "SUB...", "orderStatus": "UNSUBSCRIBED", "...": "..." }
  ]
}

POST /openapi/v1/payments/query

paymentOrderNo 查询单期子订单详情。orders/query 已返回完整 paymentRecords 列表,本接口用于按单期定向查询。

请求

字段必填说明
paymentOrderNo子订单号
json
{ "paymentOrderNo": "PAY..." }

响应 data

字段类型说明
paymentOrderNostring子订单号
orderNostring主订单号
externalOrderNostring渠道主订单号
cycleNoint期次序号(从 1 开始)
expectPayTimestring计划扣款 / 开账时刻
paidAtstring | null实际扣款 / 开账成功时刻
amountCentlong本期用户侧支付金额(分);B 模式为渠道向用户收取的 SPU 单期金额
usedAmountCentlong本期已被权益消耗的金额(分)
refundTimestring | null退款时刻;无退款时 null
refundAmountCentlong累计退款金额(分);B 模式始终为 0
paymentStatusstring字段约定 § paymentStatus
claimRecordsarray该期已发权益的领取记录;预留字段
json
{
  "paymentOrderNo": "PAY...",
  "orderNo": "SUB...",
  "externalOrderNo": "ext_xxx",
  "cycleNo": 1,
  "expectPayTime": "2026-04-28 12:00:00",
  "paidAt": "2026-04-28 12:00:01",
  "amountCent": 1990,
  "usedAmountCent": 0,
  "refundTime": null,
  "refundAmountCent": 0,
  "paymentStatus": "SUCCESS",
  "claimRecords": []
}

字段含义见 字段约定

对接咨询 · bd@cxh.me / tech@cxh.me