POST
支付结果通知
该回调通知用于接收
TXN / SALE 支付交易的服务端结果,并通过 transactionId 和 paymentId 关联支付链路。验签范围
请求签名指南除以下字段外,全部回调报文字段均参与验签:
回调报文字段
notifyType通知类型,标识本次 Webhook 的业务大类。
约束
- 取值
- 普通支付结果通知固定返回
TXN。
transactionIdOnerway 为本次交易生成的交易号,用于跟踪、查询和幂等处理。
约束
- 规则
- 该值为大整数样式字符串;JavaScript 系统中应按字符串保存和比对,避免精度丢失。
paymentId支付意图 ID,用于按支付意图维度关联同一支付链路。
约束
- 一致性
- 不要与
transactionId混用;transactionId表示具体交易,paymentId表示支付意图。
txnType交易操作类型,表示本次通知对应的交易动作。
可选值
SALE- 支付。
约束
- 取值
- 本文覆盖普通支付结果,固定返回
SALE。
merchantNoOnerway 分配的商户号,标识接收该通知的商户账户。
merchantTxnId商户为本次交易生成的商户交易号,可用于商户侧对账、去重和关联原始订单。
responseTimeOnerway 生成本次通知结果的时间,格式为
yyyy-MM-dd HH:mm:ss。txnTime交易发生或交易状态形成的时间,格式为
yyyy-MM-dd HH:mm:ss。txnTimeZonetxnTime 使用的时区偏移,格式为 ±HH:mm。orderAmount原订单金额,以
orderCurrency 表示。约束
- 规则
- 金额以 decimal string 返回,商户系统应避免用二进制浮点数直接计算金额。
orderCurrency原订单币种,ISO 4217 三位字母货币代码。
status当前交易处理状态。
可选值
S- 成功;交易已成功完成。
F- 失败;交易被拒绝或处理失败。
N- 已取消;交易未在有效期内完成支付(如收银台超时未付)而关闭。
约束
- 规则
S表示交易成功;F表示交易失败或被拒绝;N表示交易已取消。商户应以本字段判断当前transactionId的交易结果,并结合paymentStatus判断支付意图层状态。
paymentStatus支付意图级状态,用于读取同一
paymentId 下支付意图的生命周期状态。可选值
S- 支付意图达到最终成功。
O- 支付意图保持开放,可继续尝试。
N- 支付意图已关闭:超时未完成支付,包括下单后未支付关单与多次尝试均失败后关单。
eci电子商务指示符(ECI),表示交易相关的 3DS 认证状态。
cardBinCountry卡 BIN 所属国家 / 地区,ISO 3166-1 alpha-2 两位字母代码。
reason{ respCode, respMsg }交易结果原因对象,通知中按 JSON string 承载。
sign兼容保留的签名字符串:仅使用第一个启用的密钥计算,密钥轮换期间可能与商户配置的密钥不一致;请改用
X-Rh-Signature header 验签。约束
- 规则
- 验签时不要把
sign自身作为待签名字段。
paymentMethod本次交易使用的支付方式或卡品牌。
metaData商户自定义交易数据,用于商户侧关联订单、渠道或业务上下文;通知中按请求传入值返回。
walletTypeName钱包类型名称。
可选值
GooglePay- Google Pay 钱包。
ApplePay- Apple Pay 钱包。
EXPR- 钱包内资金来源:银行卡。
channelRequestId支付渠道侧的请求标识,可用于渠道侧对账或排查。
products{ name, price, ... }订单商品信息列表,通知中按 JSON string 承载。
paymentMethodDetails{ card }支付方式详情对象;卡交易的明细位于
card 子对象。{
"notifyType": "TXN",
"transactionId": "replace_with_transaction_id",
"paymentId": "replace_with_payment_id",
"txnType": "SALE",
"merchantNo": "replace_with_merchant_no",
"merchantTxnId": "replace_with_merchant_transaction_id",
"responseTime": "2026-06-25 13:52:23",
"txnTime": "2026-06-25 13:51:10",
"txnTimeZone": "+08:00",
"orderAmount": "9.99",
"orderCurrency": "USD",
"status": "S",
"paymentStatus": "S",
"eci": "5",
"cardBinCountry": "US",
"reason": "{\"respCode\":\"20000\",\"respMsg\":\"Success\"}",
"sign": "replace_with_sha256_signature",
"paymentMethod": "MASTERCARD",
"metaData": "{\"orderSource\":\"web\",\"campaignId\":\"spring_sale\"}",
"channelRequestId": "replace_with_channel_request_id"
}应答说明
成功接收并受理支付结果 webhook 后返回 HTTP 200,并在响应体中原样返回收到的
transactionId。replace_with_transaction_id