﻿## 接口说明

消息名称：`alipay.trade.subscription.changed`

## 适用场景

订阅产品商户消息通知。

## 公共请求参数

| 参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| `notify_id` | String | 必选 | 50 | 通知ID | `5608cccc09ddb39d41c2e3c06e3d9fejh2` |
| `utc_timestamp` | String | 必选 | 13 | 消息发送时的服务端时间 | `1514210452731` |
| `msg_method` | String | 必选 | 100 | 消息接口名称 | `alipay.trade.subscription.changed` |
| `app_id` | String | 必选 | 20 | 消息接受方的应用id | `2014060600164699` |
| `version` | String | 必选 | 5 | 版本号(1.1版本为标准消息) | `1.0或者1.1` |
| `biz_content` | String | 必选 | - | 消息报文 | `参见消息属性` |
| `sign` | String | 必选 | 344 | 签名 | `WcO+t3D8Kg71dTlKwN7r9Pz...` |
| `sign_type` | String | 必选 | 10 | 签名类型 | `RSA2` |
| `charset` | String | 必选 | 10 | 编码集，该字符集为验签和解密所需要的字符集 | `UTF-8` |

## 消息属性

| 参数 | 类型 | 是否必选 | 最大长度 | 描述 | 注意事项/枚举值 | 示例值 |
| --- | --- | --- | --- | --- | --- | --- |
| `change_type` | String | 必选 | 32 | 订阅变更类型 | 订阅已生效：`active` 订阅续费成功：`period_extend` 订阅项目升级成功/商品数量扩容成功：`item_update` 订阅已取消：`cancel` 订阅降级成功/商品数量缩容成功：`item_downgrade` 订阅取消后恢复：`item_cancel_revert` 订阅将在周期结束取消：`cancel_at_period_end` 试用期生效：`trialing` | `active` |
| `change_date` | String | 可选 | 32 | 订阅变更时间 | - | `2026-03-22 21:00:00` |
| `trade_no` | String | 可选 | 64 | 支付宝交易号，可根据该交易号调用支付宝交易查询接口（alipay.trade.query）进行支付明细查询 | - | `2026022276001434360514767918` |
| `order_no` | String | 可选 | 64 | 创建/升级订阅时生成的支付请求单号 | - | `2026042019600065895` |
| `out_trade_no` | String | 可选 | 64 | 商户侧外部单号 | - | `OUT042019600065895` |
| `pay_amount` | String | 可选 | 16 | 当笔订阅的支付金额，单位分 | - | `1001` |
| `subscription` | String | 可选 | 20000 | { "subscription_id":"20134141341", "subscribe_title":"", "cancel_at_period_end":true, "created":"2026-03-20 14:10:00", "subscription_status":"ACTIVE", "customer_id":"", "current_period_end":"2026-03-20 14:10:00", "canceled_date":"2026-03-22 14:00:00", "items":[ { "quantity":1, "item_id":"2026032012314", "created":"2026-03-20 14:10:00", "price":{ "gmt_create":"2026-03-26 12:58:52", "product":{ "gmt_create":"2026-03-24 18:00:00", "metadata":"{"key":"value"}", "name":"Gold ", "description":"基础", "active":true, "id":"20260", "default_price_id":"202603240" }, "metadata":"{"key":"value"}", "recurring":{ "interval_count":1, "usage_type":"licensed", "interval":"MONTH", "trial_period_days":10 }, "product_id":"202603240020000001001", "active":true, "id":"", "unit_amount":"", "type":"recurring" } } ], "current_period_start":"2026-02-20 14:10:00", "start_date":"2026-03-22 14:00:00" } | - | `订阅信息大对象，参考alipay.trade.subscription.query` |

## 触发通知示例

::::aipay-tabs{defaultActiveKey="cURL"}
:::aipay-tab{key="cURL" title="cURL"}
```bash
curl -X POST 'NOTIFY_URL' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data-urlencode 'charset=UTF-8' \
--data-urlencode 'biz_content={
    "change_type":"active",
    "change_date":"2026-03-22 21:00:00",
    "trade_no":"2026022276001434360514767918",
    "order_no":"2026042019600065895",
    "out_trade_no":"OUT042019600065895",
    "pay_amount":"1001",
    "subscription":"订阅信息大对象，参考alipay.trade.subscription.query"
}' \
--data-urlencode 'utc_timestamp=${now}' \
--data-urlencode 'sign=${sign}' \
--data-urlencode 'app_id=${appid}' \
--data-urlencode 'version=1.1' \
--data-urlencode 'sign_type=RSA2' \
--data-urlencode 'notify_id=${notify_id}' \
--data-urlencode 'msg_method=alipay.trade.subscription.changed'
```
:::

::::

## 通知应答

| 响应报文 | 描述 | 是否重试 | 是否区分大小写 |
| --- | --- | --- | --- |
| success | 消息处理成功 | 否 | 否 |
| fail | 消息处理失败 | 是 | 否 |

## 说明

消息服务会根据响应报文判断商户系统是否已经成功处理消息。如果HTTP同步响应报文返回 success 字符串，消息服务则认为消息已经处理成功，停止投递，如果返回 fail ，表示消息获取失败，支付宝会根据投递重试策略重新发送消息到应用网关地址；

## 投递重试策略

一般情况下，25 小时以内完成 8 次通知，除了第一次是实时投递外，后续的每次重试都会间隔一段时间，间隔频率一般是：2m、10m、10m、1h、2h、6h、15h（第二次消息投递是在第一次投递失败后的 2 分钟；第三次投递是在第二次投递失败后的 10 分钟，以此类推）
