View Javadoc
1   package com.foxinmy.weixin4j.mp.test;
2   
3   import com.foxinmy.weixin4j.exception.WeixinException;
4   import com.foxinmy.weixin4j.http.weixin.ApiResult;
5   import com.foxinmy.weixin4j.model.card.CardCoupons;
6   import com.foxinmy.weixin4j.model.card.CardQR;
7   import com.foxinmy.weixin4j.model.card.CouponAdvanceInfo;
8   import com.foxinmy.weixin4j.model.card.CouponBaseInfo;
9   import com.foxinmy.weixin4j.model.card.MemberCard;
10  import com.foxinmy.weixin4j.model.card.MemberInitInfo;
11  import com.foxinmy.weixin4j.model.card.MemberUpdateInfo;
12  import com.foxinmy.weixin4j.model.card.MemberUserForm;
13  import com.foxinmy.weixin4j.model.card.MemberUserInfo;
14  import com.foxinmy.weixin4j.model.qr.QRResult;
15  import com.foxinmy.weixin4j.mp.api.CardApi;
16  import com.foxinmy.weixin4j.type.card.ActivateCommonField;
17  import com.foxinmy.weixin4j.type.card.ActivateFormFieldType;
18  import com.foxinmy.weixin4j.type.card.CardCodeType;
19  import com.foxinmy.weixin4j.type.card.CardColor;
20  import com.foxinmy.weixin4j.type.card.FieldNameType;
21  
22  import org.junit.Before;
23  import org.junit.Test;
24  
25  /**
26   * 会员卡测试
27   *
28   * @auther: Feng Yapeng
29   * @since: 2016/12/21 16:37
30   */
31  public class MemberCardTest extends TokenTest {
32  
33  
34  
35      private CardApi cardApi;
36  
37      @Before
38      public void init() {
39  
40          cardApi = new CardApi(tokenManager);
41      }
42  
43      /**
44       * pn-YDwk59Ft0JSFdGqObxUccUQHw
45       */
46      @Test
47      public void create() throws WeixinException {
48          CouponBaseInfo.Builder builder = CardCoupons.customBase();
49          // 基础必填字段
50          builder.logoUrl(
51                  "http://mmbiz.qpic.cn/mmbiz_jpg/LtkLicv5iclfqzGpaDqDoMibM6FcMVTrmYXjLu7bJ1tM5MzCxNONQiaZHqrYzs0fTk2T5bLAAXLpvx32hQLmJTGBxQ/0")
52                 .codeType(CardCodeType.CODE_TYPE_BARCODE).brandName("***").title("***会员卡").cardColor(CardColor.Color010).notice("请出示会员卡")
53                 .description("***的会员卡的描述").quantity(10000);
54          // 基础选填字段
55          builder.canShare(false).canGiveFriend(false);
56          builder.centerTitle("卡券居中按钮").centerSubTitle("显示在入口下方的提示语");
57          MemberCard.Builder memberCardBuilder = CardCoupons.customMemberCard();
58          //会员卡必填字段
59          // 会员卡选填字段
60          memberCardBuilder.prerogative("会员卡特权说明").supplyBalance(true).supplyBonus(false).activateWithWx(true);
61          memberCardBuilder.customField1(FieldNameType.FIELD_NAME_TYPE_LEVEL, "等级", null);
62          memberCardBuilder.backgroundPicUrl(
63                  "https://mmbiz.qlogo.cn/mmbiz/2FyQ9TURqmdibM6nYBiagZT49lSlY9Aicw4P3vsoa7dEZIYfNkiaMyzNVYT9jmYhjBbeC8jnkibwbibB5tghC5XcgysQ/0?wx_fmt=jpeg");
64  
65          MemberCard memberCard = CardCoupons.createMemberCard(builder, memberCardBuilder);
66          String cardId = cardApi.createCardCoupon(memberCard);
67          System.out.println(cardId);
68      }
69  
70  
71      @Test
72      public void createCardQR() throws WeixinException {
73          CardQR.Builder builder = new CardQR.Builder("pn-YDwk59Ft0JSFdGqObxUccUQHw");
74          QRResult qrResult = cardApi.createCardQR(36000, builder.build());
75          String showUrl = qrResult.getShowUrl();
76          System.out.println(showUrl);
77      }
78  
79  
80      @Test
81      public void setMemberUserForm() throws WeixinException {
82          MemberUserForm memberUserForm = new MemberUserForm();
83          memberUserForm.setCardId("pn-YDwk59Ft0JSFdGqObxUccUQHw");
84          MemberUserForm.FormBudiler requiredForm = new MemberUserForm.FormBudiler();
85          requiredForm.canModify(false);
86          requiredForm.addCommonField(ActivateCommonField.USER_FORM_INFO_FLAG_EMAIL, ActivateCommonField.USER_FORM_INFO_FLAG_BIRTHDAY,
87                                      ActivateCommonField.USER_FORM_INFO_FLAG_MOBILE)
88                      .addRichField(ActivateFormFieldType.FORM_FIELD_CHECK_BOX, "checkBox", "value1", "value2", "value3");
89  
90          memberUserForm.setRequiredForm(requiredForm);
91          MemberUserForm.FormBudiler optionalFormBuilder = new MemberUserForm.FormBudiler();
92          optionalFormBuilder.canModify(false);
93          optionalFormBuilder.addCommonField(ActivateCommonField.USER_FORM_INFO_FLAG_IDCARD)
94                             .addRichField(ActivateFormFieldType.FORM_FIELD_CHECK_BOX, "checkBoxOPt", "value1", "value2", "value3");
95          memberUserForm.setOptionalForm(optionalFormBuilder);
96          memberUserForm.setServiceStatement("会员守则","https://www.baidu.com");
97          ApiResult apiResult = cardApi.setActivateUserForm(memberUserForm);
98      }
99  
100 
101     @Test
102     public void getMemberUserInfo() throws WeixinException {
103        MemberUserInfo memberUserInfo =  cardApi.getMemberUserInfo("pn-YDwk59Ft0JSFdGqObxUccUQHw", "270869833860");
104         System.out.println(memberUserInfo);
105     }
106 
107     @Test
108     public void initMemberUser() throws WeixinException {
109         MemberInitInfo memberInitInfo = new MemberInitInfo();
110         memberInitInfo.setCardId("pn-YDwk59Ft0JSFdGqObxUccUQHw");
111         memberInitInfo.setCode("270869833860");
112         memberInitInfo.setBackgroundPicUrl("https://mmbiz.qlogo.cn/mmbiz/2FyQ9TURqmdibM6nYBiagZT49lSlY9Aicw4HnSKzouD9iaksVA8vIbFT3RuqnWDVMNZib21NDdwKn5OMVMwfSsULXGw/0?wx_fmt=jpeg");
113         memberInitInfo.setInit_custom_field_value1("铂金");
114         memberInitInfo.setInitBalance(2);
115         memberInitInfo.setInitBonus(2);
116         memberInitInfo.setInitBonusRecord("初始化积分");
117         ApiResult activate = cardApi.activateMemberCard(memberInitInfo);
118         System.out.println(activate);
119     }
120 
121     @Test
122     public void updateMmemberUser() throws WeixinException {
123         MemberUpdateInfo memberUpdateInfo = new MemberUpdateInfo();
124         memberUpdateInfo.setCardId("pn-YDwk59Ft0JSFdGqObxUccUQHw");
125         memberUpdateInfo.setCode("270869833860");
126         memberUpdateInfo.setAddBalance(20);
127         memberUpdateInfo.setRecordBalance("充值");
128         memberUpdateInfo.setNOtify(true,true);
129         memberUpdateInfo.setCustomFieldValue1("至尊铂金",true);
130         cardApi.updateMemberUserInfo(memberUpdateInfo);
131     }
132 
133 
134     @Test
135     public void update() throws WeixinException {
136         CouponBaseInfo.Builder builder = CardCoupons.customBase();
137         // 基础必填字段
138         builder.logoUrl(
139                 "http://mmbiz.qpic.cn/mmbiz_jpg/LtkLicv5iclfqzGpaDqDoMibM6FcMVTrmYXjLu7bJ1tM5MzCxNONQiaZHqrYzs0fTk2T5bLAAXLpvx32hQLmJTGBxQ/0")
140                .codeType(CardCodeType.CODE_TYPE_BARCODE).brandName("***").title("***会员卡").cardColor(CardColor.Color010).notice("请出示会员卡")
141                .description("***的会员卡的描述").quantity(10000);
142         // 基础选填字段
143         builder.canShare(false).canGiveFriend(false);
144         builder.centerTitle("卡券居中按钮").centerSubTitle("显示在入口下方的提示语");
145         MemberCard.Builder memberCardBuilder = CardCoupons.customMemberCard();
146         //会员卡必填字段
147         // 会员卡选填字段
148         memberCardBuilder.prerogative("会员卡特权说明").supplyBalance(false).supplyBonus(false).activateWithWx(true);
149         memberCardBuilder.customField1(FieldNameType.FIELD_NAME_TYPE_LEVEL, "等级", null);
150         memberCardBuilder.backgroundPicUrl(
151                 "https://mmbiz.qlogo.cn/mmbiz/2FyQ9TURqmdibM6nYBiagZT49lSlY9Aicw4P3vsoa7dEZIYfNkiaMyzNVYT9jmYhjBbeC8jnkibwbibB5tghC5XcgysQ/0?wx_fmt=jpeg");
152 
153         MemberCard memberCard = CardCoupons.createMemberCard(builder, memberCardBuilder);
154         CouponAdvanceInfo.Builder advanceBuilder =  new CouponAdvanceInfo.Builder();
155         advanceBuilder.slideImage("此菜品精选食材,以独特的烹饪方法,最大程度地刺激食 客的味蕾","http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sjpiby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0");
156         memberCard.setCouponAdvanceInfo(advanceBuilder.build());
157         Boolean cardCoupon = cardApi.updateCardCoupon("pn-YDwk59Ft0JSFdGqObxUccUQHw", memberCard);
158         System.out.println(cardCoupon);
159 
160     }
161 
162 }