异步通知(notifyUrl)

说明

  • 调用方向通知中心 → 商户登记的 notifyUrlHTTPS POST)。
  • 报文分层:加签在 HTTP 请求头;业务数据在 请求体Content-Type: application/json)。格式与统一网关商户通知规范一致。
  • 验签通过后处理业务,建议返回 HTTP 2xx;通知中心负责失败重试。

请求头

Header 说明
Baofu-Timestamp 秒级时间戳
Baofu-Nonce 随机串
Baofu-Serial 证书序列号
Request-ID 链路 ID
Baofu-Signature-Type 签名算法,如 RSASM2
Baofu-Signature 签名值

商户验签(待签串)

  1. 取 Header 中秒级时间戳、随机串;数字信封若本次通知无则传空串。
  2. HTTP Body 原始 JSON 字符串(与接收到的完全一致,勿重新格式化)。
  3. 「时间戳 + \n + 随机串 + \n + 数字信封 + \n + Body + \n 拼接。
  4. Baofu-Signature-Type 验签 Baofu-Signature

绑卡/开户类通知

notifyType 说明
OPEN_ACCOUNT_SUCCESS 绑卡+开户收敛成功
OPEN_ACCOUNT_FAIL 绑卡+开户收敛失败
BIND_CARD_SUCCESS 绑卡收敛成功
BIND_CARD_FAIL 绑卡收敛失败
字段 类型 说明
notifyType string 上表取值
walletBizNo string 钱包业务号
merchantId string 商户号
merchantRequestNo string 商户请求流水号
bizStatus string SUCCESS / FAIL
contractNo string 签约号;SUCCESS 时关注
errorCode string 失败错误码; FAIL
errorMessage string 失败原因; FAIL
notifyTime string 通知时间,yyyyMMddHHmmss
cards string bizStatus=SUCCESS 且存在绑卡明细时返回;JSON 数组字符串,元素含 bankCodecardNoMaskagreementNo(与 §1.5 cards[] 对齐)

实际通知中 functionTypeorigMsgIdbusinessNo 等字段可能出现;成功时 errorCode / errorMessage 可能为空字符串,可忽略

功能一收敛成功示例

{
  "notifyType": "OPEN_ACCOUNT_SUCCESS",
  "walletBizNo": "4001010120250525120000000001",
  "merchantId": "M100001",
  "merchantRequestNo": "MCH202505250001",
  "bizStatus": "SUCCESS",
  "contractNo": "C20250525000001",
  "notifyTime": "20260525151001",
  "cards": "[{\"bankCode\":\"ICBC\",\"cardNoMask\":\"6222********1234\",\"agreementNo\":\"AGR20250525000001\"}]"
}

扣款类通知

notifyType 说明
DEDUCT_SUCCESS 扣款成功
DEDUCT_FAIL 扣款失败
字段 类型 说明
notifyType string 上表取值
deductOrderNo string 扣款订单号
merchantId string 商户号
deductRequestNo string 扣款请求号
contractNo string 签约号
deductStatus string SUCCESS / FAIL
amount string 扣款金额(分)
successAgreementNo string 扣款成功的协议绑定号; SUCCESS
successAt string 扣款成功时间,yyyyMMddHHmmss SUCCESS
errorCode string 失败错误码; FAIL
errorMessage string 失败原因; FAIL
notifyTime string 通知时间,yyyyMMddHHmmss

扣款成功示例

{
  "notifyType": "DEDUCT_SUCCESS",
  "deductOrderNo": "4101010120250525120000000001",
  "merchantId": "M100001",
  "deductRequestNo": "DED202505250001",
  "contractNo": "C20250525000001",
  "deductStatus": "SUCCESS",
  "amount": "1990",
  "successAgreementNo": "AGR20250525000001",
  "successAt": "20260525151001",
  "notifyTime": "20260525151001"
}

幂等建议:绑卡类 walletBizNo + notifyType + bizStatus;扣款类 deductOrderNo + notifyType + deductStatus