异步通知(回调 notify_url)

接口说明

调用方向:【通知中台】→ 商户在签约时登记的 notifyUrl(HTTPS POST)

报文分层:【加签输入】全部在 HTTP 请求头;【业务数据】仅在请求体(Content-Type: application/json

时间语义:业务 Body 不含 notifyTime;时间与 Header Baofu-Timestamp(秒级)及验签待签串一致

通知请求头

Baofu-Timestamp  必填 string

【秒级时间戳】与中台组签一致


Baofu-Nonce  必填 string

【随机串】


Baofu-Serial  必填 string

【证书序列号】通常为商户 API 签证书序列号


Request-ID  必填 string

【链路日志ID】与开放网关 Request-ID 语义一致


Baofu-Signature-Type  必填 string

【签名算法类型】如 RSASM2,与签约 Baofu-Sign-Type 对齐


Baofu-Signature  必填 string

【签名值】


商户验签(待签串)

与开放网关应答侧约定一致:

  1. 取 Header 中秒级时间戳、随机串;数字信封若本次通知无则传空串(拼接时仍保留单独一行)。
  2. HTTP Body 原始字节 对应的 JSON 字符串(与接收到的完全一致,勿重新格式化)。
  3. 「时间戳 + \n + 随机串 + \n + 数字信封 + \n + Body + \n 拼接(每行以换行结束,包括最后一行)。
  4. Baofu-Signature-Type 使用约定证书验签 Baofu-Signature

通知请求体

公共约定:

  • 不含 字段 merchantNo;主体见 unifiedMemberNo
  • 不含 notifyTime
  • 所有字段值均为 字符串类型(数值、日期等以字符串形式传输)。

示例

POST /your/notify/path HTTP/1.1
Host: merchant.example.com
Content-Type: application/json
Accept: application/json
Baofu-Timestamp: 1766038862
Baofu-Nonce: 5FC2FC21E871BD5B8C7A3E0B0339BC8F
Baofu-Serial: 139248429
Request-ID: 7c9e2b1a-4d3f-4e1a-9c2b-0a1b2c3d4e5f
Baofu-Signature-Type: RSA
Baofu-Signature: <signature>

{"notifyType":"PAYMENT",...}

扣款/支付类通知(notifyType=PAYMENT

notifyType  必填 string

固定值 PAYMENT


deductionNo  必填 string

【扣款单号】


subscriptionNo  必填 string

【订阅号】


unifiedMemberNo  必填 string

【统一会员编号】


outTradeNo  必填 string

【商户签约订单号】与订阅同源


status  必填 string

【扣款单状态】SUCCESS / FAILED,见数据字典与枚举说明1.2


periodNumber  必填 string

【当前账单期数】


scheduledPeriodDate  必填 string

【本期计划扣款日】自然日,如 2026-06-19


originalAmount  必填 string

【原始应扣金额】单位:分


actualAmount  必填 string

【实际扣款金额】单位:分。成功时有值,失败时为空串


subscriptionStatus  必填 string

【当前订阅状态】见数据字典与枚举说明1.1


channelOrderNo  必填 string

【渠道订单号】可为空串


failCode  必填 string

【失败错误码】成功时为空串


failMessage  必填 string

【失败原因】成功时为空串


订阅类通知(notifyType=SUBSCRIPTION

notifyType  必填 string

固定值 SUBSCRIPTION


subscriptionNo  必填 string

【订阅号】


unifiedMemberNo  必填 string

【统一会员编号】


outTradeNo  必填 string

【商户签约订单号】


productCode  必填 string

【内部产品编码】


userId  必填 string

【用户标识】


status  必填 string

【订阅状态】ACTIVE / CANCELLED / FAILED 等,见数据字典与枚举说明1.1


currentPeriod  必填 string

【当前期数】


totalPeriod  必填 string

【总期数】永续时为空串


baseAmount  必填 string

【每期扣款基准金额】单位:分


appliedPricingType  必填 string

【应用的定价类型】见数据字典与枚举说明1.6


nextDeductionTime  必填 string

【下次计划扣款时间】无计划时为空串


signTime  必填 string

【签约时间】


activateTime  必填 string

【激活时间】未激活时为空串


cancelTime  必填 string

【取消时间】未取消时为空串


通知处理规范

  • 验签通过后处理业务,建议返回 HTTP 2xx
  • 幂等:建议以 deductionNo / subscriptionNo + 业务终态关键字段(如 statusperiodNumber)组合去重。
  • 是否需要固定 JSON 体(如 { "code": "SUCCESS" })以 通知中台回调规范 为准。