订阅通知(SUBSCRIPTION)
订阅状态变更时,向签约时上送的 notify_url 投递:签约激活成功、签约失败、取消、到期、本期扣款失败且不再续扣后的暂停,以及由待激活/暂停转为生效等。不投递已生效后的普通续期扣款成功(见扣款通知);处理中或仍会重试时的临时暂停;仅变更周期/金额且状态未变。续期成功只推扣款通知;订阅状态变更另推本通知。
接口说明
请求方式:【POST】商户 notify_url
请求域名:商户在签约请求中上送的回调地址
event_type固定为SUBSCRIPTION
请求参数
Body 参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| event_type | string | true | 固定 SUBSCRIPTION |
| subscription_no | string | true | 订阅号 |
| out_trade_no | string | true | 商户签约订单号 |
| product_code | string | true | 产品编码 |
| merchant_user_id | string | false | 用户标识(可空) |
| subscription_status | string | true | 订阅状态,取值:PENDING_ACTIVATE / ACTIVE / SUSPENDED / CANCELLED / FAILED / EXPIRED |
| completed_periods | integer | true | 已扣期数(截至本次状态变更,已结案的期数) |
| total_period | integer | false | 总期数(可空) |
| period_amount | integer | true | 订阅每期标价/指定金额(分);非本笔实扣金额 |
| applied_pricing_type | string | false | 营销定价类型(可空),取值:FREE_TRIAL / FIRST_PERIOD_DISCOUNT / TIERED_DISCOUNT / FIXED_DISCOUNT / NO_DISCOUNT / MERCHANT_SPECIFIED |
| sign_time | string | true | 签约时间,ISO 8601 |
| activate_time | string | false | 激活时间,ISO 8601(可空) |
| cancel_time | string | false | 取消时间,ISO 8601(可空;未取消时缺省) |
通知示例
成功
{
"event_type": "SUBSCRIPTION",
"subscription_no": "SP01010120260319120000000001",
"out_trade_no": "MCH202603190001",
"product_code": "MONTHLY_VIP",
"merchant_user_id": "U10001",
"subscription_status": "ACTIVE",
"completed_periods": 1,
"total_period": 12,
"period_amount": 1990,
"applied_pricing_type": "FIRST_PERIOD_DISCOUNT",
"sign_time": "2026-03-19T12:00:00+08:00",
"activate_time": "2026-03-19T12:00:00+08:00",
"cancel_time": null
}
通知示例
失败
{
"event_type": "SUBSCRIPTION",
"subscription_no": "SP01010120260319120000000001",
"out_trade_no": "MCH202603190001",
"product_code": "MONTHLY_VIP",
"merchant_user_id": "U10001",
"subscription_status": "FAILED",
"completed_periods": 1,
"total_period": 12,
"period_amount": 1990,
"applied_pricing_type": "FIRST_PERIOD_DISCOUNT",
"sign_time": "2026-06-19T10:00:00+08:00"
}
处理建议:验签通过后处理业务;须应答 HTTP 状态码 200,响应体为字符串 OK;否则系统按固定频率重试。须按 event_type=SUBSCRIPTION + subscription_no + subscription_status 幂等,勿仅用签约 out_trade_no。