开发者社区> 扬朋> 正文

koubei.marketing.campaign.activity.modify(活动修改接口)java版

简介: 说明:  本帖是利用支付宝正式环境测试账号测试活动修改接口接口,请求中根据文档传入了必传参数,大家可以配置自己的环境,根据自己的需求严格按照文档要求添加相关的可选参数,此demo仅供参考 测试环境:Eclipse+JDK1.6及以上+Tomcat6.0及以上       需要注意的是当前接口只能针对“已启动(STARTED)”的活动,修改特定的属性。
+关注继续查看

说明: 
 本帖是利用支付宝正式环境测试账号测试活动修改接口接口,请求中根据文档传入了必传参数,大家可以配置自己的环境,根据自己的需求严格按照文档要求添加相关的可选参数,此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.使用沙箱手机钱包扫码查看你的优惠券 

71_25168_1c5e4d053a8c4ac.png




如有疑问欢迎跟帖提问,不足之处欢迎多多吐槽!!!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
手撸一款简单高效的线程池(五)
在之前的内容中,我们给大家介绍了 C++实现线程池过程中的一些常用线优化方案,并分析了不同机制使用时的利弊。这一篇,是线程池系列的最后一章。我们会介绍一下 CGraph 中的 threadpool 如何使用,给出性能对比,并对接下来的工作做一些展望。让我们在线程池性能优化和功能提升的道路上,越走越远。
5 0
心中有“树”!图文并茂介绍数据结构中常见的树(一)
提到数据结构中的树(Tree) ,大家应该都不陌生,相关书籍中都有大段篇幅的介绍,刷 Leetcode 的时候会遇到很多相关问题。很多人往往会用 “手写红黑树” 来形容面试难度很高。
9 0
这个开源项目绝绝子,一键生成好玩的矢量风格头像!
最近逛 GitHub,发现了一个非常好玩的开源项目——头像生成器,给大家分享一下~
4 0
JSP - 起源、执行过程、运行原理、生命周期
JSP - 起源、执行过程、运行原理、生命周期
5 0
心中有“树”!图文并茂介绍数据结构中常见的树(三)
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
10 0
+关注
扬朋
支付宝小程序开发者运营专家
516
文章
69
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载