异步通知(回调 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
【签名算法类型】如 RSA、SM2,与签约 Baofu-Sign-Type 对齐
Baofu-Signature 必填 string
【签名值】
商户验签(待签串)
与开放网关应答侧约定一致:
- 取 Header 中秒级时间戳、随机串;数字信封若本次通知无则传空串(拼接时仍保留单独一行)。
- 取 HTTP Body 原始字节 对应的 JSON 字符串(与接收到的完全一致,勿重新格式化)。
- 按 「时间戳 +
\n+ 随机串 +\n+ 数字信封 +\n+ Body +\n」 拼接(每行以换行结束,包括最后一行)。 - 按
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+ 业务终态关键字段(如status、periodNumber)组合去重。 - 是否需要固定 JSON 体(如
{ "code": "SUCCESS" })以 通知中台回调规范 为准。