开发接入
完整接口时序图

接入代运营授权
代运营授权
app_auth_token
)方式进行接入。operate_type
(操作类型)参数需传入 OPERATION_AUTH
(授权操作)类型。接入私域营销
查询营销活动

条件查询活动列表
merchant_id
参数,查询指定商家的活动。请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityApiBatchquery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityApi api = new AlipayMarketingActivityApi();
AlipayMarketingActivityBatchqueryModel data = new AlipayMarketingActivityBatchqueryModel();
data.setPageSize(20);
data.setPageNum(1);
data.setMerchantId("2088202967380463");
data.setMerchantAccessMode("SELF_MODE");
data.setActivityStatus("ACTIVE");
try {
AlipayMarketingActivityBatchqueryResponseModel response = api.batchquery(data);
} catch (ApiException e) {
AlipayMarketingActivityBatchqueryDefaultResponse errorObject = (AlipayMarketingActivityBatchqueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动参与咨询
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityApiConsult {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityApi api = new AlipayMarketingActivityApi();
AlipayMarketingActivityConsultModel data = new AlipayMarketingActivityConsultModel();
data.setMerchantId("2088102111111111");
data.setUserId("2088xxxx");
data.setMerchantAccessMode("SELF_MODE");
List<ConsultActivityInfo> consultActivityInfoList = new ArrayList<ConsultActivityInfo>();
ConsultActivityInfo consultActivityInfoList0 = new ConsultActivityInfo();
consultActivityInfoList0.setActivityId("201623213214325423");
consultActivityInfoList.add(consultActivityInfoList0);
data.setConsultActivityInfoList(consultActivityInfoList);
try {
AlipayMarketingActivityConsultResponseModel response = api.consult(data);
} catch (ApiException e) {
AlipayMarketingActivityConsultDefaultResponse errorObject = (AlipayMarketingActivityConsultDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动详情查询
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityApiQuery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityApi api = new AlipayMarketingActivityApi();
String activityId = "2016042700826004508401111111";
String merchantId = "2088202967380463";
String merchantAccessMode = "SELF_MODE";
try {
AlipayMarketingActivityQueryResponseModel response = api.query(activityId, merchantId, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityQueryDefaultResponse errorObject = (AlipayMarketingActivityQueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动适用范围
接口调用流程

活动适用商家
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityMerchantApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityMerchantApiBatchquery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityMerchantApi api = new AlipayMarketingActivityMerchantApi();
String activityId = "2016042700826004508401111111";
String merchantId = "2088202967380463";
Integer pageNum = 1;
Integer pageSize = 20;
String merchantAccessMode = "AGENCY_MODE";
try {
AlipayMarketingActivityMerchantBatchqueryResponseModel response = api.batchquery(activityId, merchantId, pageNum, pageSize, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityMerchantBatchqueryDefaultResponse errorObject = (AlipayMarketingActivityMerchantBatchqueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动适用小程序
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityAppApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityAppApiBatchquery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityAppApi api = new AlipayMarketingActivityAppApi();
String activityId = "2016042700826004508401111111";
String merchantId = "2088202967380463";
Integer pageNum = 1;
String pageSize = "20";
String merchantAccessMode = "SELF_MODE";
try {
AlipayMarketingActivityAppBatchqueryResponseModel response = api.batchquery(activityId, merchantId, pageNum, pageSize, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityAppBatchqueryDefaultResponse errorObject = (AlipayMarketingActivityAppBatchqueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动适用门店
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityShopApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityShopApiBatchquery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityShopApi api = new AlipayMarketingActivityShopApi();
String activityId = "2016042700826004508401111111";
String merchantId = "2088202967380463";
Integer pageNum = 1;
Integer pageSize = 20;
String productVersion = null;
String merchantAccessMode = "SELF_MODE";
try {
AlipayMarketingActivityShopBatchqueryResponseModel response = api.batchquery(activityId, merchantId, pageNum, pageSize, productVersion, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityShopBatchqueryDefaultResponse errorObject = (AlipayMarketingActivityShopBatchqueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
活动适用商品
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityGoodsApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityGoodsApiBatchquery {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityGoodsApi api = new AlipayMarketingActivityGoodsApi();
String activityId = "2016042700826004508401111111";
String merchantId = "2088202967380463";
String goodsUseType = "AVAILABLE";
Integer pageNum = 1;
Integer pageSize = 20;
String productVersion = null;
String merchantAccessMode = "SELF_MODE";
try {
AlipayMarketingActivityGoodsBatchqueryResponseModel response = api.batchquery(activityId, merchantId, goodsUseType, pageNum, pageSize, productVersion, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityGoodsBatchqueryDefaultResponse errorObject = (AlipayMarketingActivityGoodsBatchqueryDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
用户领券核销

领券插件
用户券核销
商户卡包
接口调用流程

用户授权
条件查询用户券
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityUserApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityUserApiBatchqueryvoucher {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityUserApi api = new AlipayMarketingActivityUserApi();
String authToken = null;
String userId = "2088512417841101";
String openId = null;
String activityId = "2016042700826004508401111111";
String belongMerchantId = "2088202967380463";
String senderMerchantId = "2088102161342862";
String voucherStatus = "SENDED";
Integer pageNum = 1;
String merchantAccessMode = "SELF_MODE";
Integer pageSize = 20;
try {
AlipayMarketingActivityUserBatchqueryvoucherResponseModel response = api.batchqueryvoucher(authToken, userId, openId, activityId, belongMerchantId, senderMerchantId, voucherStatus, pageNum, merchantAccessMode, pageSize);
} catch (ApiException e) {
AlipayMarketingActivityUserBatchqueryvoucherDefaultResponse errorObject = (AlipayMarketingActivityUserBatchqueryvoucherDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
查询用户券详情
请求示例
package com.java.sdk.demo;
import com.alipay.v3.ApiException;
import com.alipay.v3.ApiClient;
import com.alipay.v3.util.model.AlipayConfig;
import com.alipay.v3.Configuration;
import com.alipay.v3.api.AlipayMarketingActivityUserApi;
import com.alipay.v3.model.*;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class AlipayMarketingActivityUserApiQueryvoucher {
public static void main(String[] args) throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// 初始化alipay参数(全局设置一次)
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl("https://openapi.alipay.com");
alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
alipayConfig.setPrivateKey("<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->");
alipayConfig.setAlipayPublicKey("<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->");
defaultClient.setAlipayConfig(alipayConfig);
AlipayMarketingActivityUserApi api = new AlipayMarketingActivityUserApi();
String merchantId = "2088202967380463";
String userId = "2088512417841101";
String openId = null;
String activityId = "2016042700826004508401111111";
String voucherId = "2021072900073002214009F8QHR3";
String voucherCode = "ABE44";
String merchantAccessMode = "SELF_MODE";
try {
AlipayMarketingActivityUserQueryvoucherResponseModel response = api.queryvoucher(merchantId, userId, openId, activityId, voucherId, voucherCode, merchantAccessMode);
} catch (ApiException e) {
AlipayMarketingActivityUserQueryvoucherDefaultResponse errorObject = (AlipayMarketingActivityUserQueryvoucherDefaultResponse) e.getErrorObject();
System.out.println("调用失败:" + errorObject);
}
}
}
响应示例
{
"code":"unknow-error",
"message":"系统繁忙"
}
消息通知
第一步:订阅消息
msg_method
参数判断消息类型。消息接口英文名 | 消息接口中文名 | 作用 |
---|---|---|
alipay.marketing.activity.message.received | 券领取消息 | 同步用户领券及对应券信息。 |
alipay.marketing.activity.message.used | 券核销消息 | 同步用户券核销及对应券信息。 |
alipay.marketing.activity.message.expired | 券过期消息 | 同步用户券过期及对应券信息。 |
第二步:验签
第三步:反馈消息接收结果
success
表示消息获取成功,支付宝就会停止发送异步通知。如果返回 fail
或其他值,表示消息获取失败,支付宝会根据 投递重试策略 重新发送消息到应用网关地址。success
,验签失败返回 fail
,重新接收异步进行处理。响应值 | 描述 | 是否重试 |
---|---|---|
fail | 消息获取失败 | 重试 |
success | 消息获取成功 | 不重试 |
用户券消息通知
用户领券通知
user_id
(支付宝用户 ID)、voucher_code
(优惠券码)等信息到领券的 appId。消息示例
ISV_GATEWAY_URL?charset=GBK&biz_content=
{
"id":"RECEIVED_2021042400826001508407723739",
"activity_id":"2016042700826004508401111111",
"event_time":"1619338271",
"voucher_code":"voucher_code",
"receive_user_id":"2088xxxxx"
}&msg_method=alipay.marketing.activity.message.received&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2¬ify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==
用户券核销通知
user_id
(支付宝用户 ID)、voucher_code
(优惠券码)等信息到领券的 appId。消息示例
ISV_GATEWAY_URL?charset=GBK&biz_content=
{
"id":"USED_2021042400826001508407723739",
"activity_id":"2016042700826004508401111111",
"event_time":"1619338271",
"voucher_id":"2021072900073002214009F8QHR3",
"user_id":"核销的支付宝user_id",
"trade_no":"2021042322001426261436764012"
}&msg_method=alipay.marketing.activity.message.used&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2¬ify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==
用户券过期通知
user_id
(支付宝用户 ID)、voucher_code