# 订阅通知
当订阅状态发生变更(如订阅创建成功、周期扣费成功、扣费失败、订阅取消等)时,支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
# 通知
接口
请求URL: 该链接是通过统一下单接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式: POST
请求类型:application/x-www-form-urlencoded
* 安全:针对正式环境,对通知进行来源强校验,正式环境流量出口 "正式流量环境出口"
# 通知参数
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 通知ID | logId | String | L_20210618001 | 此条通知的唯一标识 (对应订阅日志ID) |
| 订阅ID | subscriptionId | String | SUB_20210618001 | 支付系统订阅ID |
| 商户号 | mchNo | String | M1621873433953 | 商户号 |
| 应用ID | appId | String | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | String | sub1624005107281 | 商户传入的订单号 |
| 订阅计划ID | planId | String | PLAN_001 | 订阅计划ID |
| 订阅计划编码 | planCode | String | VIP_MONTH | 订阅计划编码 |
| 待生效计划ID | pendingPlanId | String | PLAN_002 | 待生效订阅计划ID(下期生效变更确认后有值) |
| 待生效计划编码 | pendingPlanCode | String | PRO_MONTH | 待生效订阅计划编码(下期生效变更确认后有值) |
| 订阅周期 | cycleIndex | integer | 1 | 订阅周期值 |
| 商户用户ID | mchUserId | String | user_001 | 商户用户ID |
| 支付订单ID | payOrderId | String | P202106181642329900002 | 支付订单ID (可选) 用于退款 |
| 状态 | state | Byte | 1 | 0-待生效, 1-等生效 2-活跃, 3-暂停, 4-逾期 5-已取消, 6-完成, 7-无效 |
| 当前周期开始 | currentPeriodStart | Long | 1624005107281 | 当前计费周期开始时间戳 (可选) |
| 下次扣费时间 | currentPeriodEnd | Long | 1626597107281 | 当前周期结束/下次扣费时间戳 (可选) |
| 到期取消 | cancelAtPeriodEnd | Boolean | false | 是否在周期结束时取消 |
| 币种 | currency | String | USD | 币种 |
| 当期支付金额 | currentPeriodAmount | Integer | 100 | 当期支付金额,单位分 |
| 是否有效 | isActive | Boolean | true | 根据状态和时间判断当前是否有效 |
| 请求时间 | reqTime | Long | 1622016572190 | 通知发送时间,13位时间戳 |
| 事件类型 | eventType | String | SUBSCRIPTION_CREATED | 事件类型,详见下表 |
| 变更记录ID | changeId | String | CHG_20210618164201 | 变更记录ID(变更相关事件填充,供商户与创建变更时返回的changeId对账) |
| 签名 | sign | String | CCD9083A6DAD9A2DA9F668C3D4517A84 | 签名值 |
# 事件类型 (eventType)
| 事件类型 | 说明 | 触发场景 | currentPeriodAmount |
|---|---|---|---|
SUBSCRIPTION_CREATED | 订阅创建成功 | 首次支付成功,状态变为 Active | 当期支付金额 |
SUBSCRIPTION_RENEWED | 订阅续费成功 | 后续周期自动/手动扣费成功 | 当期支付金额 |
SUBSCRIPTION_CANCELED | 订阅取消 | 用户主动取消或到期自动取消 | 无 |
SUBSCRIPTION_PAY_FAILED | 扣费失败 | 周期扣费失败 | 当期支付金额 |
SUBSCRIPTION_COMPLETED | 订阅完成 | 达到最大期数,订阅自然结束 | 无 |
SUBSCRIPTION_OVERDUE | 订阅逾期 | 扣费多次失败进入逾期状态 | 无 |
SUBSCRIPTION_UPGRADE_SCHEDULED | 升级已预约 | 下期生效升级确认后,计划将在下次续费时切换 | 无 |
SUBSCRIPTION_DOWNGRADE_SCHEDULED | 降级已预约 | 下期生效降级确认后,计划将在下次续费时切换 | 无 |
SUBSCRIPTION_PLAN_CHANGED | 计划已变更 | 立即生效变更补付成功后切换计划 | 当期支付金额 |
SUBSCRIPTION_RENEWED_WITH_PLAN_CHANGE | 续费并切换计划 | 下期生效变更在续费扣款成功时合并切换计划 | 当期支付金额 |
SUBSCRIPTION_CHANGE_CANCELED | 变更已取消 | 变更预约被取消(主动取消/自动替换/过期清理/订阅取消联动) | 无 |
# 返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示已处理(*success只表示通知已经接收,跟订单状态无关),如处理发生异常返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为通知延迟配置 15s/3m/10m/30m/30m/1h/2h/6h/15h)
| 状态 | state | 业务系统Response |
|---|---|---|
| 2 | 活跃 | success |
| 3 | 暂停 | success |
| 4 | 逾期 | success |
| 5 | 已取消 | success |
| 6 | 完成 | success |
注意
返回的字符串必须是小写,且前后不能有空格和换行符。
# 通知示例数据
subscriptionId=SUB_20210618001&mchOrderNo=sub1624005107281&state=1&isActive=true&sign=4210976D520A0FC7F4E951549E8F087C&reqTime=1701825776788&logId=L_20210618001