Skip to content

OpenAPI 接口定义

本页由 docs/developer-portal/openapi/zhishoutong-open-api.json 自动生成,请勿手工编辑。 重新生成:pnpm --filter @api-platform/developer-portal gen

智收通支付开放平台对客 API。所有 /open/v1 接口需 HMAC v2 签名(请求头 x-app-id / x-key-id / x-timestamp / x-nonce / x-signature),写操作必须携带 Idempotency-Key。金额一律为人民币分(整数)。平台为技术服务商:不持有资金、不开立支付账户、不从事清算。

创建支付会话

POST /open/v1/checkout-sessions

创建统一收银台会话。传 paymentProductCodes 时返回服务端筛选后的付款方式,由托管页选择后创建支付订单;兼容模式下直接返回按 scene 决定的 CheckoutAction。同一 Idempotency-Key 重复请求幂等返回首次结果;同 Key 不同报文将被拒绝。

参数

名称位置必填说明
Idempotency-Keyheader幂等键:写操作必填。同 Key 同报文幂等返回;同 Key 不同报文返回 IDEMPOTENCY_CONFLICT。24 小时有效。
x-app-idheader应用 ID。配套请求头:x-key-id(凭据)、x-timestamp(Unix 秒)、x-nonce(随机串)。
x-signatureheaderHMAC v2 签名值(hex)。

请求体

字段类型必填说明
outTradeNostring商户订单号,商户内唯一;重复创建幂等返回既有会话
merchantIdstring平台商户 ID
storeIdstring已归属当前商户的门店 ID
scene枚举:MINI_PROGRAM / APP / H5 / PC / QRCODE收银台形态
amountFeninteger金额(人民币分)
currency枚举:CNY
subjectstring订单标题
channelCodestring兼容模式的内部指定通道;新接入方应使用 paymentProductCodes,由 SmartPay 服务端完成路由
paymentProductCodesarray(枚举:TENCENT_BUSINESS_PAY / JEEPAY_AGGREGATE / WECHAT_B2B_PAY允许付款人选择的支付产品白名单;实际可用方式还会按商户绑定、场景、环境和适配器状态过滤
returnUrlstringH5/PC 完成后的手动回跳地址;必须为 HTTPS,且其协议、域名和端口已在当前应用白名单中登记。回跳不代表支付成功
allocationIntentobject分配意图快照;当前不代表已发布分账执行 API,只有签约产品明确支持时才使用
allocationIntent.planCodestring
allocationIntent.receiversarray(object)
wechatPayerobject微信 JSAPI/小程序支付付款人标识。选择 WX_JSAPI 或 WX_LITE 时必传;只用于本次上游下单,不在收银台响应、Webhook 或业务 metadata 中返回。
wechatPayer.openIdstring付款人在当前直连商户或子商户 AppID 下的 openId,不得携带首尾空格。
wechatPayer.scope枚举:DIRECT / SUB_MERCHANTDIRECT 表示直连商户 openId;SUB_MERCHANT 表示服务商子商户 openId。
metadataobject(键值对)业务透传字段,Webhook 原样带回

响应 200 — 会话创建成功

data 字段:

字段类型必填说明
sessionIdstring平台会话号,cs_ 开头
outTradeNostring
merchantIdstring
scene枚举:MINI_PROGRAM / APP / H5 / PC / QRCODE
amountFeninteger
currency枚举:CNY
status枚举:CREATED / PROCESSING / SUCCEEDED / CLOSED / EXPIRED会话状态机;SUCCEEDED/CLOSED/EXPIRED 为终态
actionobject
action.type枚举:MINI_PROGRAM_LAUNCH / APP_H5 / H5_URL / PC_H5 / QRCODE_URL拉起动作类型,由 scene 决定
action.payloadobject(键值对)通道无关载荷(url / prepayId / qrcodeUrl 等)
action.expiresAtstring
paymentMethodsarray(object)
selectionRequiredbooleantrue 时付款人需先选择 paymentMethods 中的一项
orderIdstring平台订单号,po_ 开头
orderStatus枚举:CREATED / ACCEPTED / SUCCEEDED / FAILED / CLOSED / UNKNOWN订单状态机;UNKNOWN 表示通道结果待收敛,平台会主动反查
paidAtstring
expiresAtstring
createdAtstring

响应 400 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

响应 401 — 认证失败(签名/时间戳/重放)

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

响应 429 — 配额或频率限制

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

查询支付会话

GET /open/v1/checkout-sessions/{sessionId}

查询会话与关联订单状态。终态以此接口或 Webhook 为准,前端回跳不可作为支付成功依据。

参数

名称位置必填说明
sessionIdpath平台会话号,cs_ 开头
x-app-idheader应用 ID。配套请求头:x-key-id(凭据)、x-timestamp(Unix 秒)、x-nonce(随机串)。
x-signatureheaderHMAC v2 签名值(hex)。

响应 200 — 会话详情

data 字段:

字段类型必填说明
sessionIdstring平台会话号,cs_ 开头
outTradeNostring
merchantIdstring
scene枚举:MINI_PROGRAM / APP / H5 / PC / QRCODE
amountFeninteger
currency枚举:CNY
status枚举:CREATED / PROCESSING / SUCCEEDED / CLOSED / EXPIRED会话状态机;SUCCEEDED/CLOSED/EXPIRED 为终态
actionobject
action.type枚举:MINI_PROGRAM_LAUNCH / APP_H5 / H5_URL / PC_H5 / QRCODE_URL拉起动作类型,由 scene 决定
action.payloadobject(键值对)通道无关载荷(url / prepayId / qrcodeUrl 等)
action.expiresAtstring
paymentMethodsarray(object)
selectionRequiredbooleantrue 时付款人需先选择 paymentMethods 中的一项
orderIdstring平台订单号,po_ 开头
orderStatus枚举:CREATED / ACCEPTED / SUCCEEDED / FAILED / CLOSED / UNKNOWN订单状态机;UNKNOWN 表示通道结果待收敛,平台会主动反查
paidAtstring
expiresAtstring
createdAtstring

响应 404 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

发起微信付款码支付

POST /open/v1/terminal-payments

门店终端扫描付款人微信付款码后发起 WX_BAR 支付。调用应用必须获得 TERMINAL_PAYMENT_CREATE 权限,商户、门店、终端与 JeePay 聚合支付产品必须均已启用。authCode 是一次性敏感值,平台不存储、不记录、不回显。返回 UNKNOWN 时必须查询原订单,不得换单号重试。

参数

名称位置必填说明
Idempotency-Keyheader幂等键:写操作必填。同 Key 同报文幂等返回;同 Key 不同报文返回 IDEMPOTENCY_CONFLICT。24 小时有效。
x-app-idheader应用 ID。配套请求头:x-key-id(凭据)、x-timestamp(Unix 秒)、x-nonce(随机串)。
x-signatureheaderHMAC v2 签名值(hex)。

请求体

字段类型必填说明
outTradeNostring商户订单号,应用内唯一
merchantIdstring当前应用已绑定的平台商户 ID
storeIdstring归属当前商户的启用门店 ID
terminalIdstring归属当前门店的启用终端 ID
amountFeninteger金额(人民币分)
currency枚举:CNY
subjectstring订单标题
authCodestring扫描获得的微信付款人一次性 18 位付款码;不得写入日志、数据库或重试队列

响应 200 — 付款码支付已受理

data 字段:

字段类型必填说明
sessionIdstring
orderIdstring
outTradeNostring
merchantIdstring
storeIdstring
terminalIdstring
amountFeninteger
currency枚举:CNY
status枚举:PROCESSING
orderStatus枚举:ACCEPTED / UNKNOWN
expiresAtstring
createdAtstring

响应 400 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

响应 401 — 认证失败(签名/时间戳/重放)

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

响应 429 — 配额或频率限制

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

创建退款

POST /open/v1/refunds

对 SUCCEEDED 订单发起退款。约束:订单支付后 180 天内;累计退款不超过订单金额;同一订单两次退款间隔不少于 1 分钟;最多 50 次。通道处理中返回 PROCESSING,终态经 Webhook 或查询接口获取。

参数

名称位置必填说明
Idempotency-Keyheader幂等键:写操作必填。同 Key 同报文幂等返回;同 Key 不同报文返回 IDEMPOTENCY_CONFLICT。24 小时有效。
x-app-idheader应用 ID。配套请求头:x-key-id(凭据)、x-timestamp(Unix 秒)、x-nonce(随机串)。
x-signatureheaderHMAC v2 签名值(hex)。

请求体

字段类型必填说明
outRefundNostring商户退款单号,商户内唯一;重复提交幂等返回
orderIdstring平台订单号,po_ 开头
amountFeninteger退款金额(分),累计不得超过订单金额
reasonstring

响应 200 — 退款受理

data 字段:

字段类型必填说明
refundIdstring平台退款号,rf_ 开头
outRefundNostring
orderIdstring
amountFeninteger
status枚举:CREATED / PROCESSING / SUCCEEDED / FAILEDSUCCEEDED/FAILED 为终态
channelRefundIdstring
failureCodestring
succeededAtstring
createdAtstring

响应 400 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

响应 429 — 配额或频率限制

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

查询退款

GET /open/v1/refunds/{refundId}

参数

名称位置必填说明
refundIdpath平台退款号,rf_ 开头
x-app-idheader应用 ID。配套请求头:x-key-id(凭据)、x-timestamp(Unix 秒)、x-nonce(随机串)。
x-signatureheaderHMAC v2 签名值(hex)。

响应 200 — 退款详情

data 字段:

字段类型必填说明
refundIdstring平台退款号,rf_ 开头
outRefundNostring
orderIdstring
amountFeninteger
status枚举:CREATED / PROCESSING / SUCCEEDED / FAILEDSUCCEEDED/FAILED 为终态
channelRefundIdstring
failureCodestring
succeededAtstring
createdAtstring

响应 404 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

托管收银台页面

GET /checkout/{sessionId}

平台托管的付款人页面(免签名):展示订单摘要、二维码/拉起入口,并轮询支付状态。不暴露商户与通道敏感信息。

参数

名称位置必填说明
sessionIdpath

响应 200 — HTML 页面


托管收银台状态轮询

GET /checkout/{sessionId}/status

付款人侧公开状态接口,仅返回脱敏状态字段。

参数

名称位置必填说明
sessionIdpath

响应 200 — 脱敏状态

字段类型必填说明
sessionIdstring
subjectstring
amountFeninteger
currency枚举:CNY
scene枚举:MINI_PROGRAM / APP / H5 / PC / QRCODE
status枚举:CREATED / PROCESSING / SUCCEEDED / CLOSED / EXPIRED
actionobject
action.type枚举:MINI_PROGRAM_LAUNCH / APP_H5 / H5_URL / PC_H5 / QRCODE_URL拉起动作类型,由 scene 决定
action.payloadobject(键值对)通道无关载荷(url / prepayId / qrcodeUrl 等)
action.expiresAtstring
paymentMethodsarray(object)
selectionRequiredboolean
returnUrlstring
expiresAtstring
qrDataUrlstring扫码场景下的 data URL;不含通道凭证

查询付款人可选支付方式

GET /checkout/{sessionId}/methods

只返回不含内部渠道号、渠道商户号和凭证的付款人安全字段。

参数

名称位置必填说明
sessionIdpath

响应 200 — 支付方式列表

字段类型必填说明
paymentMethodsarray(object)
selectionRequiredboolean

选择支付方式并创建支付订单

POST /checkout/{sessionId}/method-selection

以不透明 optionId 原子锁定服务端路由。同一方式重复提交幂等返回既有支付,不允许改选其他方式。

参数

名称位置必填说明
sessionIdpath

请求体

字段类型必填说明
optionIdstring

响应 200 — 刷新后的托管收银台状态

字段类型必填说明
sessionIdstring
subjectstring
amountFeninteger
currency枚举:CNY
scene枚举:MINI_PROGRAM / APP / H5 / PC / QRCODE
status枚举:CREATED / PROCESSING / SUCCEEDED / CLOSED / EXPIRED
actionobject
action.type枚举:MINI_PROGRAM_LAUNCH / APP_H5 / H5_URL / PC_H5 / QRCODE_URL拉起动作类型,由 scene 决定
action.payloadobject(键值对)通道无关载荷(url / prepayId / qrcodeUrl 等)
action.expiresAtstring
paymentMethodsarray(object)
selectionRequiredboolean
returnUrlstring
expiresAtstring
qrDataUrlstring扫码场景下的 data URL;不含通道凭证

响应 400 — 业务错误

字段类型必填说明
codestring机器可读错误码,如 REFUND_AMOUNT_EXCEEDED / IDEMPOTENCY_CONFLICT / QUOTA_EXCEEDED
messagestring
detailsarray(object)
traceIdstring

事件推送(平台 → 客户)

POST /{customer-webhook-url}

客户在控制台注册回调地址后,支付/退款终态事件将推送到该地址。请求头含 x-webhook-signature(HMAC-SHA256,密钥为注册时一次性展示的 secret)与 x-webhook-timestamp。客户应校验签名、以 eventId 去重、快速返回 2xx;失败将按指数退避重试 12 次/24 小时。

请求体

字段类型必填说明
eventIdstring事件唯一 ID,客户端以此去重
type枚举:payment.succeeded / payment.failed / payment.closed / refund.succeeded / refund.failed
occurredAtstring
dataobject 或 objectpayment.* 事件为 CheckoutSession;refund.* 事件为 Refund

响应 200 — 客户确认接收


智收通平台为技术服务商:不持有客户资金、不开立支付账户、不从事资金清算。