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