说明:
本帖是利用支付宝正式环境测试账号测试活动修改接口接口,请求中根据文档传入了必传参数,大家可以配置自己的环境,根据自己的需求严格按照文档要求添加相关的可选参数,此demo仅供参考
测试环境:Eclipse+JDK1.6及以上+Tomcat6.0及以上
需要注意的是当前接口只能针对“已启动(STARTED)”的活动,修改特定的属性。通过活动修改接口,可修改一下几点: 活动结束时间/券有效期 —— 只可延长 活动库存 —— 只可追加 活动参与限制(包含每月/周/日) —— 只可追加 活动门店/券适用门店 —— 只可追加
下面以修改营销活动延期1个月为例演示如何使用接口。如需了解更详细的活动创建配置说明,
可参阅进阶说明。
koubei.marketing.campaign.activity.modify(活动修改接口)接口示例代码
package com.alipay.demo; import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Random; import com.alipay.api.AlipayApiException;import com.alipay.api.AlipayClient;import com.alipay.api.DefaultAlipayClient;import com.alipay.api.domain.BudgetInfo;import com.alipay.api.domain.ConstraintInfo;import com.alipay.api.domain.ItemInfo;import com.alipay.api.domain.KoubeiMarketingCampaignActivityModifyModel;import com.alipay.api.domain.PidShopInfo;import com.alipay.api.domain.PointCard;import com.alipay.api.domain.PromoTool;import com.alipay.api.domain.PublishChannel;import com.alipay.api.domain.RecruitTool;import com.alipay.api.domain.SendRule;import com.alipay.api.domain.UseRule;import com.alipay.api.domain.Voucher;import com.alipay.api.request.KoubeiMarketingCampaignActivityModifyRequest;import com.alipay.api.response.KoubeiMarketingCampaignActivityModifyResponse;import com.alipay.config.AlipayConfig; public class koubeiMarketingCampaignActivityModify { /** * * koubei.marketing.campaign.activity.modify 活动修改接口 * * @throws ParseException * @throws AlipayApiException */ public static void main(String[] args) throws ParseException, AlipayApiException { AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); KoubeiMarketingCampaignActivityModifyRequest request = new KoubeiMarketingCampaignActivityModifyRequest(); KoubeiMarketingCampaignActivityModifyModel model = new KoubeiMarketingCampaignActivityModifyModel(); // 外部批次ID,用户指定,每次请求保持唯一 model.setOutBizNo(getOutBizNoModify()); // 活动id model.setCampId("20180314000000002577674000151339"); // 活动名称 不允许修改,必须与活动详情查询的结果保持一致 model.setName("口碑门店消费满10元送1元代金券"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = sdf.parse("2018-03-15 00:00:00"); Date endTime = sdf.parse("2018-4-15 00:00:00"); // 活动开始时间 不允许修改,必须与活动详情查询的结果保持一致 model.setStartTime(startTime); // 活动结束时间 活动结束时间只允许延长 model.setEndTime(endTime); // 活动类型 不允许修改,必须与活动详情查询的结果保持一致 model.setType("RECHARGE_SEND"); // 活动详细说明 不允许修改,必须与活动详情查询的结果保持一致 model.setDesc("该活动是用于挽回流失用户的"); // 投放渠道 当活动类型为DIRECT_SEND或者REAL_TIME_SEND时必填,为CONSUME_SEND时必须为空 // model.setPublishChannels(getPublishChannelsModify()); // 招商工具 model.setRecruitTool(getRecruitToolModify()); // 活动预算 model.setBudgetInfo(getBudgetInfoModify()); // 活动限制信息 model.setConstraintInfo(getConstraintInfoModify()); /******** 营销工具集 **********/ List
toolList = new ArrayList(); toolList.add(getPromoToolModify()); model.setPromoTools(toolList); request.setBizModel(model); KoubeiMarketingCampaignActivityModifyResponse response = alipayClient.execute(request); if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); } System.out.println(response.getBody()); } // 招商工具信息 private static RecruitTool getRecruitToolModify() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = sdf.parse("2018-03-15 00:00:00"); Date endTime = sdf.parse("2018-04-15 00:00:00"); RecruitTool recruitTool = new RecruitTool(); // 招商开始时间 recruitTool.setStartTime(startTime); // 招商结束时间 recruitTool.setEndTime(endTime); // 招商pid和pid对应的门店列表(对于品牌商,此字段必填,活动和券的适用门店为空。对于商圈,此字段需为空,门店需要填在活动和券的适用门店上) recruitTool.setPidShops(getPidShopsModify()); return recruitTool; } // 招商pid和pid对应的门店列表(对于品牌商,此字段必填,活动和券的适用门店为空。对于商圈,此字段需为空,门店需要填在活动和券的适用门店上) private static List
getPidShopsModify() { List
pidShopsList = new ArrayList
(); PidShopInfo pidShopInfo = new PidShopInfo(); // 商户pid pidShopInfo.setPid("2088501624560335"); // pid下的门店列表 pidShopInfo.setShopIds(getShopIdsModify()); pidShopsList.add(pidShopInfo); return pidShopsList; } // pid下的门店列表 private static List
getShopIdsModify() { List
shopIds = new ArrayList
(); shopIds.add("2017031500077000000027299729"); shopIds.add("2017031000077000000027197410"); return shopIds; } /** * 外部批次ID * * @return */ private static String getOutBizNoModify() { SimpleDateFormat simpleDateFormat; simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); Date date = new Date(); String str = simpleDateFormat.format(date); Random random = new Random(); int rannum = (int) (random.nextDouble() * (999 - 100 + 1)) + 100;// 获取5位随机数 return str + rannum;// 当前时间 } /** * 投放渠道 当活动类型为DIRECT_SEND或者REAL_TIME_SEND时必填,为CONSUME_SEND时必须为空 * * @return */ private static List
getPublishChannelsModify() { // TODO Auto-generated method stub List
l = new ArrayList(); PublishChannel p = new PublishChannel(); p.setType("SHOP_DETAIL"); p.setName("投放到店铺"); l.add(p); return l; } /** * 活动限制信息 * * @return */ private static ConstraintInfo getConstraintInfoModify() { ConstraintInfo constraintInfo = new ConstraintInfo(); // 活动期间用户能够参与的次数限制 ,不填则不做限制 // constraintInfo.setUserWinCount("1"); // 活动期间用户能够参与的频率限制 ,不填则不限制参与频率, 每日中奖1次: D||1 // constraintInfo.setUserWinFrequency("D||3"); // 人群规则组ID 人群规则组ID 仅直发奖类型活动设置有效,通过调用营销活动人群组规则创建接口参数返回 // 针对指定人群的约束条件 // constraintInfo.setCrowdRestriction("NEW_MEMBER_PROMO"); // 活动适用的门店列表仅品牌商发起的招商活动可为空 最多支持10w家门店 constraintInfo.setSuitShops(getSuitShopsModify()); // 最低消费金额,单位元 仅在创建消费送礼包活动时设置 // constraintInfo.setMinCost("10"); return constraintInfo; } /** * 券对象,当活动类型为POINT_SEND时为null,其他活动类型此字段必填 * * @return * @throws ParseException */ private static Voucher getVoucherModify() throws ParseException { Voucher voucher = new Voucher(); // 券类型,目前支持以下类型: EXCHANGE:兑换券; MONEY:代金券; REDUCETO:减至券; RATE:折扣券 voucher.setType("MONEY"); // 该字段仅在兑换券条件下(即券类型为EXCHANGE),用于设置兑换券的核销方式 // voucher.setVerifyMode("MERCHANT_SCAN"); // 名称 voucher.setName("口碑门店满20减5"); // 券的使用说明 List
UseInstructionsList = new ArrayList(); UseInstructionsList.add("口碑门店满20减5特价优惠"); voucher.setUseInstructions(UseInstructionsList); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = sdf.parse("2018-03-15 00:00:00"); Date endTime = sdf.parse("2018-04-15 00:00:00"); voucher.setStartTime(startTime); voucher.setEndTime(endTime); // 券LOGO文件ID,调用图片上传接口alipay.offline.material.image.upload获得 voucher.setLogo("gKpPK40RSNeBiMxDsat8CQAAACMAAQED"); // 券有效期类型,目前支持以下类型: RELATIVE:相对有效期 ,FIXED:绝对有效期 voucher.setValidateType("FIXED"); // 券副标题 voucher.setBrandName("券副标题测试"); // 券生效的方式,目前支持以下方式 立即生效:IMMEDIATELY; 延迟生效:DELAY 仅在券有效期类型为相对有效期时生效 voucher.setEffectType("IMMEDIATELY"); // 券面额 voucher.setWorthValue("1"); // 券的使用规则信息 voucher.setUseRule(getUseRuleModify()); // 单品信息 兑换券不允许设置单品信息 减至券必须设置单品信息 其他类型券可按需设置 voucher.setItemInfo(getItemInfoModify()); // 券的备注 voucher.setVoucherNote("券的备注测试"); return voucher; } /** * Item_Info 单品信息 * * @return */ private static ItemInfo getItemInfoModify() { // TODO Auto-generated method stub ItemInfo itemInfo = new ItemInfo(); // 单品券说明 itemInfo.setItemText("单品卷测试"); // 单品名称 itemInfo.setItemName("测试单品优惠"); // 券适用的单品码列表 最少配置1个单品码 最多配置500个单品码 itemInfo.setItemIds(getitemIdsModify()); return itemInfo; } /** * item_ids 单品码列表 * * @return */ private static List
getitemIdsModify() { List
l = new ArrayList(); l.add("000123456"); return l; } /** * 券的使用规则信息 * * @return */ private static UseRule getUseRuleModify() { UseRule useRule = new UseRule(); // 券适用门店列表 // 仅品牌商发起的招商活动可为空 // 直发奖类型活动必须与活动适用门店一致 // 最多支持10w家门店 useRule.setSuitShops(getSuitShopsModify()); return useRule; } /** * 活动适用的门店列表 仅品牌商发起的招商活动可为空 最多支持10w家门店 * * @return */ private static List
getSuitShopsModify() { List
SuitShops = new ArrayList(); SuitShops.add("2017031500077000000027299729"); SuitShops.add("2017031000077000000027197410"); return SuitShops; } /** * 营销工具集 * * @return * @throws ParseException */ private static PromoTool getPromoToolModify() throws ParseException { PromoTool promoTool = new PromoTool(); // 券对象 promoTool.setVoucher(getVoucherModify()); // 单个营销工具的生效状态,当在招商部分券失效后会使用这个字段 // promoTool.setStatus(""); // 奖品发放的规则 promoTool.setSendRule(getSendRuleModify()); // 集点卡工具,仅在活动类型为POINT_SEND时才有效且必填,其他活动类型此字段必须为null // promoTool.setPointCard(getPointCardModify()); // 奖品发放的规则 promoTool.setSendRule(getSendRuleModify()); return promoTool; } /** * 集点卡工具,仅在活动类型为POINT_SEND时才有效且必填,其他活动类型此字段必须为null * */ private static PointCard getPointCardModify() { PointCard pointCard = new PointCard(); // 工具类型,目前支持: 集点卡:POINT_CARD // pointCard.setType("POINT_CARD"); // //工具的名称 // pointCard.setName("集点卡"); // //工具的描述 // pointCard.setDesc("集点卡的功能描述"); // //工具的有效期的起始时间 // pointCard.setStartTime(startTime); // //工具的有效期的结束时间(必须晚于活动的结束时间) // pointCard.setEndTime(endTime); // //工具的LOGO文件ID // pointCard.setLogo("1T8Pp00AT7eo9NoAJkMR3AAAACMAAQEC"); return pointCard; } /** * 奖品发放的规则 * * @return */ private static SendRule getSendRuleModify() { // TODO Auto-generated method stub SendRule s = new SendRule(); // 发券最低消费金额 s.setMinCost("100"); return s; } /** * 活动预算 * * @return */ private static BudgetInfo getBudgetInfoModify() { // 活动预算 BudgetInfo budgetInfo = new BudgetInfo(); // 预算类型 budgetInfo.setBudgetType("QUANTITY"); // 预算数量 budgetInfo.setBudgetTotal("10258"); return budgetInfo; } }
请求参数注意事项:
1.app_auth_token:ISV/开发者可以通过第三方应用授权([url]https://openclub.alipay.com/read.php?tid=1649[/url])得到商家授权令牌(app_auth_token)作为请求参数传入,实现代商家发起请求的能力;
2.voucher.Logo:券LOGO文件ID,调用alipay.offline.material.image.upload(图片上传接口)获得,接口示例
可点击[url]https://openclub.alipay.com/read.php?tid=2316[/url]根据帖子进行测试获取image_id
3.SuitShops:活动适用的门店列表 ,这个需要使用查询商户的门店编号列表接口([url]https://openclub.alipay.com/read.php?tid=2321[/url])进行查询获取
4.camp_id(活动id)通过koubei.marketing.campaign.activity.create (活动创建接口)([url]https://openclub.alipay.com/read.php?tid=2638[/url])调用成功同步返回
5.name 活动名称 不允许修改,必须与活动详情查询的结果保持一致
6.start_time 活动开始时间 不允许修改,必须与活动详情查询的结果保持一致
7.end_time 活动结束时间 活动结束时间只允许延长
[color='''''rgba(0, 0, 0, 0.650980392156863)''''']8.type 活动类型 不允许修改,必须与活动详情查询的结果保持一致[color='''''rgba(0, 0, 0, 0.650980392156863)''''']9.desc 活动详细说明 不允许修改,必须与活动详情查询的结果保持一致
调用成功返回信息:
{"koubei_marketing_campaign_activity_modify_response":{"code":"10000","msg":"Success","camp_status":"MODIFYING"},"sign":"ZEzTg0IckPXO/OFrvi1g5q6bwTE20DfWe+XU2mGuxu3YOgQiVrhnz1H6oL5MFSHLT2/rv5mEtNk8NwBldJki826ZzcOjy03oRDfTgpiFnEFGjAebDGz2Rz3r8rjDr2JDtyPXlFTGSFtMqa8qPzSS7d8ZMRS8HCMD8crxWOOhZbs="}
如何查看生成的优惠券:
1.创建活动成功后,可以到沙箱工具中点击口碑门店账号&二维码转换工具 :[url]https://openhome.alipay.com/platform/appDaily.htm?tab=tool[/url]
2.将你填写的SuitShops放入,生成二维码
3.使用沙箱手机钱包扫码查看你的优惠券
如有疑问欢迎跟帖提问,不足之处欢迎多多吐槽!!!