# alipay.trade.subscription.create(订阅创建) 支持第三方代理调用:本接口支持第三方开发者代用户发起调用 ## 通用场景 订阅场景对商户提供的创建接口 ### 公共请求参数 |参数英文名|类型|是否必选|长度/取值|描述|示例值| |---|---|---|---|---|---| |app_id|String|必选|32|支付宝分配给开发者的应用ID|2014072300007148| |method|String|必选|128|接口名称|alipay.trade.subscription.create| |format|String|可选|40|仅支持JSON|JSON| |charset|String|必选|10|请求使用的编码格式,如utf-8,gbk,gb2312等|utf-8| |sign_type|String|必选|10|商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2|RSA2| |sign|String|必选|344|商户请求参数的签名串,详见[签名](https://opendocs.alipay.com/common/02khjm)|详见示例| |timestamp|String|必选|19|发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"|2014-07-24 03:07:50| |version|String|必选|3|调用的接口版本,固定为:1.0|1.0| |app_auth_token|String|可选|40|详见[应用授权概述](https://opendocs.alipay.com/isv/10467/xldcyq)|| |biz_content|String|必选||请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档|| ### 业务请求参数 |参数英文名|类型|是否必选|长度/取值|描述|示例值| |---|---|---|---|---|---| |trial_desc|String|可选|12|用于签约页展示,若不传该字段,则展示默认文案。 低价试用场景文案:"{pay_amount}元试用{trial_period_days}天";免费试用场景文案:"免费试用{trial_period_days}天|新用户免费试用| |trial_period_days|Number|可选|365|试用期天数:试用期天数设置为正整数,通常建议试用期天数3-7天|7| |metadata|String|可选|512|商户可通过此字段进行订阅信息的自定义传参,订阅生效后不可修改,将在全链路通知或查询中返回|{"key":"value"}| |pay_amount|Number|可选|1000000000|支付金额,单位分; 仅用于商户自定义金额,若传了该值,用户实际支付金额会以该值为准|100| |items|SubscriptionItem|可选||订阅项目信息|| |items.item_id|String|可选|64|订阅生效后,查询接口(alipay.trade.subscription.query)或通知接口(alipay.trade.subscription.changed)返回的item_id,使用方式详见具体场景接入指南。|2026032012314| |items.price_id|String|可选|64|价格创建接口(alipay.trade.price.create)返回的价格id,代表本次操作的目标价格信息,使用方式详见具体场景接入指南。|202603201234567889| |items.quantity|String|可选|8|购买的商品数量,目前仅在席位商品的订阅创建(alipay.trade.subscription.create)场景按需传入该参数,使用方式详见具体场景接入指南。|10| |items.source_quantity|String|可选|8|目前仅用于席位商品的订阅修改(alipay.trade.subscription.modify)场景下指定当前已生效的订阅项中商品的数量,使用方式详见具体场景接入指南。|10| |items.target_quantity|String|可选|8|目前仅用于席位商品的订阅修改(alipay.trade.subscription.modify)场景下指定订阅项的目标商品数量,使用方式详见具体场景接入指南。|100| |items.coupon_id|String|可选|40|营销创建接口(alipay.trade.promotion.coupon.create)返回的优惠id,使用方式详见具体场景接入指南|9WJ36SEC| |subscribe_title|String|可选|256|订单标题,若无特殊需求,无需使用该字段,默认使用商品名称|订阅月会员| |customer_id|String|必须|64|客户id,客户创建接口(alipay.trade.customer.create)返回的客户id|208812345678| |deduct_type|String|可选|32|有限枚举,托管扣款类型,默认为SUBSCRIBE_DEDUCT。1.SUBSCRIBE_DEDUCT:托管模式(支付宝自动扣款,默认);2.MERCHANT_DEDUCT:非托管模式(商户自助扣款)
**枚举值**
SUBSCRIBE_DEDUCT:SUBSCRIBE_DEDUCT
MERCHANT_DEDUCT:MERCHANT_DEDUCT|SUBSCRIBE_DEDUCT| |extend_params|String|可选|512|扩展参数,用于订阅特殊能力的传参,使用方式详见具体场景接入指南|{"key":"value"}| ### 请求示例 #### 默认示例 ##### java ``` package com.java.sdk.demo; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.AlipayConfig; import com.alipay.api.domain.SubscriptionItem; import com.alipay.api.domain.AlipayTradeSubscriptionCreateModel; import com.alipay.api.response.AlipayTradeSubscriptionCreateResponse; import com.alipay.api.request.AlipayTradeSubscriptionCreateRequest; import com.alipay.api.FileItem; import java.util.Base64; import java.util.ArrayList; import java.util.List; public class AlipayTradeSubscriptionCreate { public static void main(String[] args) throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); // 构造请求参数以调用接口 AlipayTradeSubscriptionCreateRequest request = new AlipayTradeSubscriptionCreateRequest(); AlipayTradeSubscriptionCreateModel model = new AlipayTradeSubscriptionCreateModel(); // 设置试用期描述 model.setTrialDesc("新用户免费试用"); // 设置试用期天数 model.setTrialPeriodDays(7L); // 设置订阅信息元数据 model.setMetadata("{\"key\":\"value\"}"); // 设置支付金额 model.setPayAmount(100L); // 设置订阅项目信息 List items = new ArrayList(); SubscriptionItem items0 = new SubscriptionItem(); items0.setQuantity("10"); items0.setCouponId("9WJ36SEC"); items0.setItemId("2026032012314"); items0.setPriceId("202603201234567889"); items0.setSourceQuantity("10"); items0.setTargetQuantity("100"); items.add(items0); model.setItems(items); // 设置订单标题 model.setSubscribeTitle("订阅月会员"); // 设置支付宝客户id model.setCustomerId("208812345678"); // 设置托管扣款类型 model.setDeductType("SUBSCRIBE_DEDUCT"); // 设置扩展参数 model.setExtendParams("{\"key\":\"value\"}"); request.setBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradeSubscriptionCreateResponse response = alipayClient.execute(request); System.out.println(response.getBody()); if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); // System.out.println(diagnosisUrl); } } private static AlipayConfig getAlipayConfig() { String privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->"; String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->"); alipayConfig.setPrivateKey(privateKey); alipayConfig.setFormat("json"); alipayConfig.setAlipayPublicKey(alipayPublicKey); alipayConfig.setCharset("UTF-8"); alipayConfig.setSignType("RSA2"); return alipayConfig; } } ``` ##### php ``` setBizContent(json_encode($model,JSON_UNESCAPED_UNICODE)); // 如果是第三方代调用模式,请设置app_auth_token(应用授权令牌) $responseResult = $alipayClient->execute($request, null, "<-- 请填写应用授权令牌 -->", null); $responseApiName = str_replace(".","_",$request->getApiMethodName())."_response"; $response = $responseResult->$responseApiName; if(!empty($response->code)&&$response->code==10000){ echo("调用成功"); } else{ echo("调用失败"); } function getAlipayConfig() { $privateKey = '<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->'; $alipayPublicKey = '<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->'; $alipayConfig = new AlipayConfig(); $alipayConfig->setServerUrl('https://openapi.alipay.com/gateway.do'); $alipayConfig->setAppId('<-- 请填写您的AppId,例如:2019091767145019 -->'); $alipayConfig->setPrivateKey($privateKey); $alipayConfig->setFormat('json'); $alipayConfig->setAlipayPublicKey($alipayPublicKey); $alipayConfig->setCharset('UTF-8'); $alipayConfig->setSignType('RSA2'); return $alipayConfig; } ``` ##### csharp ``` using System; using System.Collections.Generic; using Aop.Api; using Aop.Api.Request; using Aop.Api.Response; using Aop.Api.Domain; using Aop.Api.Util; namespace SdkDemoTest { public class AlipayTradeSubscriptionCreate { public static void Main(string[] args) { // 初始化SDK IAopClient alipayClient = new DefaultAopClient(GetAlipayConfig()); // 构造请求参数以调用接口 AlipayTradeSubscriptionCreateRequest request = new AlipayTradeSubscriptionCreateRequest(); AlipayTradeSubscriptionCreateModel model = new AlipayTradeSubscriptionCreateModel(); // 设置试用期描述 model.TrialDesc = "新用户免费试用"; // 设置试用期天数 model.TrialPeriodDays = 7; // 设置订阅信息元数据 model.Metadata = "{\"key\":\"value\"}"; // 设置支付金额 model.PayAmount = 100; // 设置订阅项目信息 List items = new List(); SubscriptionItem items0 = new SubscriptionItem(); items0.Quantity = "10"; items0.CouponId = "9WJ36SEC"; items0.ItemId = "2026032012314"; items0.PriceId = "202603201234567889"; items0.SourceQuantity = "10"; items0.TargetQuantity = "100"; items.Add(items0); model.Items = items; // 设置订单标题 model.SubscribeTitle = "订阅月会员"; // 设置支付宝客户id model.CustomerId = "208812345678"; // 设置托管扣款类型 model.DeductType = "SUBSCRIBE_DEDUCT"; // 设置扩展参数 model.ExtendParams = "{\"key\":\"value\"}"; request.SetBizModel(model); // 第三方代调用模式下请设置app_auth_token // request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->"); AlipayTradeSubscriptionCreateResponse response = alipayClient.Execute(request); if(!response.IsError) { Console.WriteLine("调用成功"); } else { Console.WriteLine("调用失败"); } } private static AlipayConfig GetAlipayConfig() { string privateKey = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->"; string alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->"; AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.ServerUrl = "https://openapi.alipay.com/gateway.do"; alipayConfig.AppId = "<-- 请填写您的AppId,例如:2019091767145019 -->"; alipayConfig.PrivateKey = privateKey; alipayConfig.Format = "json"; alipayConfig.AlipayPublicKey = alipayPublicKey; alipayConfig.Charset = "UTF-8"; alipayConfig.SignType = "RSA2"; return alipayConfig; } } } ``` ##### http ``` curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.subscription.create&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=RSA2×tamp=${now}' \ -F 'app_auth_token=${app_auth_token}' \ -F 'biz_content={ "trial_desc":"新用户免费试用", "trial_period_days":7, "metadata":"{\"key\":\"value\"}", "pay_amount":100, "items":[ { "quantity":"10", "coupon_id":"9WJ36SEC", "item_id":"2026032012314", "price_id":"202603201234567889", "source_quantity":"10", "target_quantity":"100" } ], "subscribe_title":"订阅月会员", "customer_id":"208812345678", "deduct_type":"SUBSCRIBE_DEDUCT", "extend_params":"{\"key\":\"value\"}" }' ``` ### 公共响应参数 |参数英文名|类型|是否必选|长度/取值|描述|示例值| |---|---|---|---|---|---| |code|String|必须|~|网关返回码,[详见文档](https://docs.open.alipay.com/common/105806)|40004| |msg|String|必须|~|网关返回码描述,[详见文档](https://docs.open.alipay.com/common/105806)|Business Failed| |sub_code|String|可选|~|业务返回码,参见具体的API接口文档|| |sub_msg|String|可选|~|业务返回码描述,参见具体的API接口文档|| |sign|String|必须|64|签名,[详见文档](https://docs.open.alipay.com/291/106074)|DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo=| ### 业务响应参数 |参数英文名|类型|是否必选|长度/取值|描述|示例值| |---|---|---|---|---|---| |promotion_info|String|可选|1000|订阅创建生成的优惠信息|{\"originAmount\":\"30.00\",\"2026042802400000001\":\"{\\\"couponName\\\":\\\"新用户立减10元-前三次\\\",\\\"amountOff\\\":\\\"10.00\\\",\\\"couponId\\\":\\\"9WJ36SEC\\\"}\",\"discountAmount\":\"10.00\"}| |trial_end|String|可选|32|试用期结束时间,格式 yyyy-MM-dd HH:mm:ss|2026-04-22 14:10:00| |trial_start|String|可选|32|试用期开始时间,格式 yyyy-MM-dd HH:mm:ss|2026-04-22 14:10:00| |order_no|String|可选|32|创建订阅时生成的支付请求单号|123456789| |pay_amount|Number|可选|1000000000|支付金额,单位分|100| |alipay_jump_schema|String|可选|4096|长链,适用于跳转拉起支付宝端|alipays://platformapi/startApp?appId=60000157&orderStr=XXXXXXXXXX| |alipay_schema|String|可选|4096|短链,适用于生成二维码|https://basementurl.test.alipay.net/_1bQzQBRlIPjfo4eyx5SlMJ| |subscription_id|String|可选|64|订阅id,本次订阅操作生成的唯一标识|20260320123156789| |schema_effective_end|String|可选|32|签约链接有效期截止时间,格式 yyyy-MM-dd HH:mm:ss|2026-05-28 16:10:00| ### 响应示例 #### 正常响应示例 ``` { "alipay_trade_subscription_create_response":{ "code":"10000", "msg":"Success", "promotion_info":"{\\\"originAmount\\\":\\\"30.00\\\",\\\"2026042802400000001\\\":\\\"{\\\\\\\"couponName\\\\\\\":\\\\\\\"新用户立减10元-前三次\\\\\\\",\\\\\\\"amountOff\\\\\\\":\\\\\\\"10.00\\\\\\\",\\\\\\\"couponId\\\\\\\":\\\\\\\"9WJ36SEC\\\\\\\"}\\\",\\\"discountAmount\\\":\\\"10.00\\\"}", "trial_end":"2026-04-22 14:10:00", "trial_start":"2026-04-22 14:10:00", "order_no":"123456789", "pay_amount":100, "alipay_jump_schema":"alipays://platformapi/startApp?appId=60000157&orderStr=XXXXXXXXXX", "alipay_schema":"https://basementurl.test.alipay.net/_1bQzQBRlIPjfo4eyx5SlMJ", "subscription_id":"20260320123156789", "schema_effective_end":"2026-05-28 16:10:00" }, "sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" } ``` #### 异常响应示例 ``` {"alipay_trade_subscription_create_response":{"code":"20000","msg":"Service Currently Unavailable","sub_code":"isp.unknow-error","sub_msg":"系统繁忙"},"sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"} ``` ### 业务错误码 |错误码|错误描述|解决方案| |---|---|---| |SYSTEM_ERROR|系统繁忙|服务器异常 可能发生了网络或者系统异常,导致服务调用失败,商户可以用同样的请求发起重试| |INVALID_PARAMETER|参数有误|请根据接口返回的参数非法的具体错误信息,修改参数后进行重试|