天天看點

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

說明: 

 本帖是利用支付寶正式環境測試賬号測試活動修改接口接口,請求中根據文檔傳入了必傳參數,大家可以配置自己的環境,根據自己的需求嚴格按照文檔要求添加相關的可選參數,此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.使用沙箱手機錢包掃碼檢視你的優惠券 

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

如有疑問歡迎跟帖提問,不足之處歡迎多多吐槽!!!