跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.gate.com/llms.txt

Use this file to discover all available pages before exploring further.

处理要求

对于每一笔收到的回调,你都必须:
  1. 先验证签名 : 见 认证与安全 了解签名验证详情
  2. 解析业务数据 并进行幂等处理
  3. 返回约定的成功响应
由于同一业务事件可能被重复投递,因此你必须基于业务唯一标识实现幂等处理。

建议处理顺序

为了降低误更新、重复入账或过早判定终态的风险,建议按以下顺序处理回调:
  1. 校验请求头与签名
  2. 解析 bizTypebizIdbizStatus
  3. 对业务唯一标识做幂等检查
  4. 更新本地业务状态
  5. 返回成功响应
  6. 对关键资金事件结合查询接口做最终确认
对于支付、OTC、出金等资金相关场景,回调通常应被视为主要事件来源,但关键结果仍建议结合查询接口做最终核验。

触发与重试机制

触发条件 当订单状态发生变化(如支付成功、超时、取消、关闭或异常)时,GatePay 会向你配置的回调地址发送通知。 重试 如果你未返回约定的成功响应,或请求超时,GatePay 会按规则重试回调。 签名验证 处理前必须先验证所有回调签名。请参见 认证与安全 了解详情。

回调消息结构

所有回调都包含以下顶层字段:
字段类型说明
bizType字符串通知类别 (见 bizType 枚举
bizId字符串订单 ID 或业务 ID
bizStatus字符串业务状态 (因 bizType 而异)
client_id字符串商户 client_id
data字符串以 JSON 字符串表示的业务载荷;结构因 bizType 而异
回调示例:
{
  "bizType": "PAY",
  "bizId": "6948484859590",
  "bizStatus": "PAY_SUCCESS",
  "client_id": "cdhu-fgrfg44-5ggd-cdvsa",
  "data": "{\"merchantTradeNo\":\"M202603120001\",\"orderAmount\":\"100.00\"}"
}

回调确认响应

请以 HTTP 200 返回以下 JSON 响应:
{
  "returnCode": "SUCCESS",
  "returnMessage": ""
}
建议使用 HTTP 200 状态码表示已成功接收.

bizType 枚举

取值说明
PAY非地址支付订单的状态变更
PAY_REFUND退款订单的状态变更
PAY_BATCH批量奖励订单的状态变更
PAY_GIFT_BATCH批量礼品卡支付的状态变更
PAY_ADDRESS地址支付订单的状态变更
TRANSFER_ADDRESS地址支付资金流水通知
PAY_FIXED_ADDRESS静态地址收款通知
WITHDRAW提现 / 出款状态变更
INSTITUTION机构 API 账户相关通知

总体说明

  • 通知章节用于说明所有支付、退款、地址收款、静态地址收款、出金与机构相关回调的共性规则。
  • 每类业务的详细回调字段解释,仍应以对应产品章节中的接入说明与 API Reference 共同理解。
  • 如果你的业务同时接入多种支付方式,请务必按照 bizType 分流处理,不要假设所有订单都共用同一回调字段集合。
  • 不建议仅依据单次回调立即完成财务终态确认;对于关键资金动作,建议结合查单或详情查询接口完成最终核验。

支付产品与 bizType 对应关系

如果你的业务同时接入多种支付产品,建议先按“产品类型 -> bizType”建立内部映射:
产品或场景主要 bizType说明
托管收银台、Web 拉起、普通非地址支付PAY用于非地址类支付订单状态通知
退款PAY_REFUND用于退款状态推进
地址支付PAY_ADDRESS用于地址支付订单状态变化
地址支付资金到账TRANSFER_ADDRESS用于地址支付资金入账、延迟到账或风控状态
静态地址收款PAY_FIXED_ADDRESS用于静态地址到账结果
出金 / 提现WITHDRAW用于批次及子订单状态变化
机构子账户相关INSTITUTION用于机构子账户开通结果通知
本页已经整合常见事件目录与终态处理建议,可直接结合下文的业务分类继续阅读。

托管收银台支付通知

托管收银台支付遵循通用的 PAY 回调模型。对于非地址支付,请使用 orderAmount 判断支付金额。有关支付接入的更多详情,请参见 支付

退款通知

退款订单使用 PAY_REFUND 回调类型。
  • 退款查询与对账时,请优先使用商户侧唯一标识 refundRequestId
  • API 发起的退款与商户后台手工退款是两个不同操作入口,文档中的回调说明仅覆盖 API 集成场景。
  • 退款状态推进建议同时结合回调与退款查询接口完成。

地址支付通知

PAY_ADDRESS 状态枚举

状态适用模式说明
PAY_SUCCESS非兑换 / 兑换支付成功
PAY_ERROR非兑换 / 兑换支付失败
PAY_CLOSE非兑换 / 兑换订单已关闭
PAY_EXPIRED_IN_PROCESS非兑换 / 兑换有效期内已达到目标金额,但仍存在链上未最终确认记录
PENDING兑换待处理
PROCESS兑换处理中
PAID兑换已支付
EXPIRED兑换已过期

PAY_ADDRESS data 字段

字段适用模式说明
merchantTradeNo非兑换 / 兑换商户 订单号
productType非兑换 / 兑换产品类型
productName非兑换 / 兑换产品名称
goodsName非兑换 / 兑换商品名称
tradeType非兑换 / 兑换交易类型
terminalType非兑换 / 兑换终端类型
currency非兑换 / 兑换计价币种
orderAmount非兑换 / 兑换订单金额
payerId非兑换 / 兑换付款方标识
createTime非兑换 / 兑换创建时间
transactionId非兑换 / 兑换平台交易 ID
waitAmountOnChain非兑换 / 兑换已检测到但尚未最终入账的链上金额
doneAmountOnChain非兑换 / 兑换已确认并入账的链上金额
channelId非兑换 / 兑换渠道标识
chain非兑换 / 兑换链名称
address非兑换 / 兑换收款地址
fromAddress非兑换 / 兑换付款方地址
payCurrency兑换用于兑换的支付币种
payAmount兑换用于兑换的支付金额
rate兑换汇率
overPay兑换超付金额

TRANSFER_ADDRESS 状态枚举

状态说明
TRANSFERRED_ADDRESS_IN_TERM有效期内入账
TRANSFERRED_ADDRESS_DELAY有效期后入账
CONVERT_ADDRESS_PAY_DELAY仅兑换延迟支付通知,不入账
TRANSFERRED_ADDRESS_BLOCK风控资金,未入账

TRANSFER_ADDRESS data 字段

字段说明
merchantTradeNo商户 订单号
currency币种
orderAmount订单金额
createTime创建时间
transactionId平台交易 ID
transferAmount链上转账金额
txHash区块链交易哈希
chain链名称
address地址
channelId渠道标识
说明:历史或不同业务流中,交易哈希字段可能表现为 txHashtx_hashhash,接入时建议按兼容方式解析。

静态地址收款通知

bizType: PAY_FIXED_ADDRESS bizStatus: PAY_SUCCESS (入账成功) 或 PAY_BLOCK (风险资金,未入账)

data 字段

字段类型必填说明
channelId字符串渠道标识
currency字符串币种
orderAmount字符串订单金额
amount字符串实际入账金额
createTime数字创建时间 (毫秒)
transactionId字符串平台交易 ID
transactionTime数字交易时间 (毫秒)
chain字符串链名称
address字符串收款地址
成功响应:
{
  "returnCode": "SUCCESS",
  "returnMessage": ""
}

提现 / 出款回调

有关提现和出金操作,请参见 出金 了解详细回调结构和字段说明。 bizType: WITHDRAW

主单字段

字段必填说明
batch_id批次 ID
merchant_id商户 ID
statusINIT / PROCESSING / PARTIAL / FAIL / SUCCESS
client_id创建批次时使用的 client_id
pay_back_status回退状态
channel_id渠道标识

子订单字段

字段必填说明
suborder_id子订单 ID
chain
address地址
currency币种
amount金额
fee手续费
txHash交易哈希
statusDONE / FAIL
merchant_withdraw_id商户 提现 ID
fee_type0=内扣;1=外扣
finish_time完成时间
sub_amount子订单总金额
done_amount实际完成金额

机构 API 回调

bizType: INSTITUTION bizStatus: INSTITUTION_ACCOUNT_SUCCESSINSTITUTION_ACCOUNT_FAIL 有关机构账户相关通知,请参见 机构

data 字段(JSON 字符串)

字段说明
request_id请求标识
account_id账户 ID
customer_id客户 ID
display_name账户显示名称
statusACTIVE 或 FAIL
created毫秒时间戳

回调接入指南

接入要求

项目建议
接口使用专用路径,例如 /webhook/gatepay
协议HTTPS 与 TLS 1.2+
处理策略验证签名 → 幂等存储 → 异步处理业务 → 返回 SUCCESS
签名验证签名验证失败时绝不返回 SUCCESS
data 解析data 字段是 JSON 字符串,需要进行二次解析
重复处理使用幂等处理支持重复通知

推荐处理流程

  1. 接收 回调请求
  2. 验证 使用商户密钥验证签名,具体规则可参考 认证与安全
  3. 提取 并解析 data 字段 (JSON 字符串 → 对象)
  4. 检查 幂等键 (例如 transactionId 或 merchantTradeNo)
  5. 存储 处理前持久化存储通知
  6. 处理 异步处理业务逻辑
  7. 返回 {"returnCode": "SUCCESS", "returnMessage": ""} 并使用 HTTP 200
该设计可提高可靠性并避免重复处理.

相关文档

常见事件目录

事件处理建议

  • 优先按 bizType 分流,不要假设所有回调都共享同一套字段
  • 再按 bizStatus 判断当前状态是否为中间态或终态
  • 最后结合 merchantTradeNorefundRequestIdbatch_id 等业务键做幂等更新

事件目录

bizTypebizStatus业务含义是否终态推荐动作
PAYPAY_SUCCESS非地址支付成功更新订单为成功,触发发货或入账
PAYPAY_ERROR非地址支付失败标记失败,允许人工或系统重试
PAYPAY_CLOSE订单关闭结束业务流,停止继续轮询
PAY_REFUNDREFUND_PROCESS退款处理中更新退款处理中状态,继续等待回调或查询
PAY_REFUNDREFUND_SUCCESS退款成功更新退款完成状态并做资金对账
PAY_REFUNDREFUND_REJECTED退款拒绝标记退款失败,进入人工排查
PAY_ADDRESSPAY_SUCCESS地址支付成功更新订单成功并记录链上支付信息
PAY_ADDRESSPAY_EXPIRED_IN_PROCESS有效期内达到金额,但仍有未确认链上记录持续等待确认,不应过早判定终态
TRANSFER_ADDRESSTRANSFERRED_ADDRESS_IN_TERM有效期内完成入账更新到账完成状态
TRANSFER_ADDRESSTRANSFERRED_ADDRESS_DELAY延迟到账更新延迟到账结果,并结合业务判断是否可接受
TRANSFER_ADDRESSCONVERT_ADDRESS_PAY_DELAY闪兑地址支付延迟通知继续结合订单模式与查询结果处理
TRANSFER_ADDRESSTRANSFERRED_ADDRESS_BLOCK风控阻断资金标记异常并转人工处理
PAY_FIXED_ADDRESSPAY_SUCCESS静态地址收款成功更新到账记录
PAY_FIXED_ADDRESSPAY_BLOCK静态地址风控资金标记异常并人工复核
WITHDRAWINIT / PROCESSING出金批次处理中更新处理中状态,等待后续回调
WITHDRAWSUCCESS出金批次全部成功更新批次成功并完成台账确认
WITHDRAWPARTIAL出金批次部分成功按子订单拆分处理成功与失败结果
WITHDRAWFAIL出金批次失败标记失败并进入重试或人工处理
INSTITUTIONINSTITUTION_ACCOUNT_SUCCESS子账户创建成功记录子账户开通成功
INSTITUTIONINSTITUTION_ACCOUNT_FAIL子账户创建失败记录失败原因并转人工排查

终态处理原则

对于终态事件,推荐同时满足以下条件后再推进后续业务:
  1. 签名验证通过
  2. 幂等校验通过
  3. 事件已经持久化
  4. 业务状态已经与本地订单、退款单或批次单一致

相关文档