修正模板消息的返回值,返回msgId。
会员卡接口的调整。
This commit is contained in:
parent
ec89112ce6
commit
87a2e427de
@ -581,6 +581,23 @@ public class CouponBaseInfo implements Serializable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置卡券在领取多少天后有效
|
||||
*
|
||||
* @param days
|
||||
* 表示自领取后多少天内有效,不支持填写0。
|
||||
* @param beginDays
|
||||
* 表示自领取后多少天开始生效,领取后当天生效填写0。(单位为天)
|
||||
* @return
|
||||
*/
|
||||
public Builder activeAt(int days, int beginDays) {
|
||||
this.date.clear();
|
||||
this.date.put("type", CardActiveType.DATE_TYPE_FIX_TERM);
|
||||
this.date.put("fixed_term", days);
|
||||
this.date.put("fixed_begin_term", beginDays);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置是否自定义Code码
|
||||
*
|
||||
|
||||
@ -1005,7 +1005,8 @@ public class WeixinProxy {
|
||||
* 删除群发</a>
|
||||
* @see com.foxinmy.weixin4j.mp.api.MassApi
|
||||
* @see {@link #massByGroupId(Tuple, int)}
|
||||
* @see {@link #massByOpenIds(Tuple, String...)
|
||||
* @see {@link #massByOpenIds(Tuple, String...)
|
||||
|
||||
*
|
||||
*/
|
||||
public ApiResult deleteMassNews(String msgid) throws WeixinException {
|
||||
@ -1570,7 +1571,7 @@ public class WeixinProxy {
|
||||
* @seee com.foxinmy.weixin4j.msg.event.TemplatesendjobfinishMessage
|
||||
* @see com.foxinmy.weixin4j.mp.api.TmplApi
|
||||
*/
|
||||
public ApiResult sendTmplMessage(TemplateMessage tplMessage)
|
||||
public String sendTmplMessage(TemplateMessage tplMessage)
|
||||
throws WeixinException {
|
||||
return tmplApi.sendTmplMessage(tplMessage);
|
||||
}
|
||||
|
||||
@ -13,9 +13,14 @@ import com.foxinmy.weixin4j.model.Token;
|
||||
import com.foxinmy.weixin4j.model.card.CardCoupon;
|
||||
import com.foxinmy.weixin4j.model.card.CardCoupons;
|
||||
import com.foxinmy.weixin4j.model.card.CardQR;
|
||||
import com.foxinmy.weixin4j.model.card.MemberInitInfo;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUpdateInfo;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUserForm;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUserInfo;
|
||||
import com.foxinmy.weixin4j.model.qr.QRParameter;
|
||||
import com.foxinmy.weixin4j.model.qr.QRResult;
|
||||
import com.foxinmy.weixin4j.token.TokenManager;
|
||||
import com.foxinmy.weixin4j.type.card.CardStatus;
|
||||
import com.foxinmy.weixin4j.type.card.CardType;
|
||||
import com.foxinmy.weixin4j.util.IOUtil;
|
||||
|
||||
@ -191,7 +196,7 @@ public class CardApi extends MpApi {
|
||||
* @author fengyapeng
|
||||
* @since 2016 -12-20 11:48:23
|
||||
*/
|
||||
public void getCardStatus(String cardId) throws WeixinException {
|
||||
public CardStatus queryCardStatus(String cardId) throws WeixinException {
|
||||
JSONObject requestObj = new JSONObject();
|
||||
requestObj.put("card_id",cardId);
|
||||
String card_get_uri = getRequestUri("card_get_uri");
|
||||
@ -201,7 +206,8 @@ public class CardApi extends MpApi {
|
||||
JSONObject card = responseAsJson.getJSONObject("card");
|
||||
String cardType = card.getString("card_type");
|
||||
JSONObject baseInfo = card.getJSONObject(cardType.toLowerCase()).getJSONObject("base_info");
|
||||
baseInfo.get("status");
|
||||
String status = baseInfo.getString("status");
|
||||
return CardStatus.valueOf(status);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -230,4 +236,73 @@ public class CardApi extends MpApi {
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 激活方式说明
|
||||
* 接口激活通常需要开发者开发用户填写资料的网页。通常有两种激活流程:
|
||||
* 1. 用户必须在填写资料后才能领卡,领卡后开发者调用激活接口为用户激活会员卡;
|
||||
* 2. 是用户可以先领取会员卡,点击激活会员卡跳转至开发者设置的资料填写页面,填写完成后开发者调用激活接口为用户激活会员卡。
|
||||
*
|
||||
* @see <a href='https://mp.weixin.qq.com/wiki?action=doc&id=mp1451025283&t=0.8029895777585161#6.1'>接口激活</a>
|
||||
*/
|
||||
public ApiResult activate(MemberInitInfo memberInitInfo) throws WeixinException {
|
||||
String card_member_card_activate_uri = getRequestUri("card_member_card_activate_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(card_member_card_activate_uri, token.getAccessToken()), JSON.toJSONString(memberInitInfo));
|
||||
return response.getAsResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置开卡字段接口
|
||||
* 开发者在创建时填入wx_activate字段后,
|
||||
* 需要调用该接口设置用户激活时需要填写的选项,否则一键开卡设置不生效。
|
||||
*
|
||||
* @see <a href='https://mp.weixin.qq.com/wiki?action=doc&id=mp1451025283&t=0.8029895777585161#6.2'>一键激活</a>
|
||||
*/
|
||||
public ApiResult setActivateUserForm(MemberUserForm memberUserForm) throws WeixinException {
|
||||
String user_form_uri = getRequestUri("card_member_card_activate_user_form_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(user_form_uri, token.getAccessToken()), JSON.toJSONString(memberUserForm));
|
||||
return response.getAsResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉取会员信息接口。
|
||||
*
|
||||
* @param cardId the card id
|
||||
* @param code the code
|
||||
* @author fengyapeng
|
||||
* @since 2016 -12-21 11:28:45
|
||||
*/
|
||||
public MemberUserInfo getMemberUserInfo(String cardId, String code) throws WeixinException {
|
||||
String user_info_uri = getRequestUri("card_member_card_user_info_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("card_id", cardId);
|
||||
jsonObject.put("code", code);
|
||||
WeixinResponse response = weixinExecutor.post(String.format(user_info_uri, token.getAccessToken()), JSON.toJSONString(jsonObject));
|
||||
return response.getAsObject(new TypeReference<MemberUserInfo>() {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新会员
|
||||
* @param updateInfo
|
||||
* @return
|
||||
* @throws WeixinException
|
||||
*/
|
||||
public JSONObject updateUserInfo(MemberUpdateInfo updateInfo) throws WeixinException {
|
||||
String card_member_card_update_user_uri = getRequestUri("card_member_card_update_user_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(card_member_card_update_user_uri, token.getAccessToken()), JSON.toJSONString(updateInfo));
|
||||
return response.getAsJson();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
package com.foxinmy.weixin4j.mp.api;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.alibaba.fastjson.TypeReference;
|
||||
import com.foxinmy.weixin4j.exception.WeixinException;
|
||||
import com.foxinmy.weixin4j.http.weixin.ApiResult;
|
||||
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
|
||||
import com.foxinmy.weixin4j.model.Token;
|
||||
import com.foxinmy.weixin4j.model.card.MemberInitInfo;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUpdateInfo;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUserForm;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUserInfo;
|
||||
import com.foxinmy.weixin4j.token.TokenManager;
|
||||
|
||||
/**
|
||||
* 会员卡的api
|
||||
*
|
||||
* @auther: Feng Yapeng
|
||||
* @since: 2016/12/20 14:43
|
||||
* @see <a href='https://mp.weixin.qq.com/wiki/wiki?action=doc&id=mp1451025283&t=0.8029895777585161'>创建会员卡&会员卡管理</a>
|
||||
*/
|
||||
public class MemberCardApi extends CardApi {
|
||||
|
||||
|
||||
public MemberCardApi(TokenManager tokenManager) {
|
||||
super(tokenManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* 激活方式说明
|
||||
* 接口激活通常需要开发者开发用户填写资料的网页。通常有两种激活流程:
|
||||
* 1. 用户必须在填写资料后才能领卡,领卡后开发者调用激活接口为用户激活会员卡;
|
||||
* 2. 是用户可以先领取会员卡,点击激活会员卡跳转至开发者设置的资料填写页面,填写完成后开发者调用激活接口为用户激活会员卡。
|
||||
*
|
||||
* @see <a href='https://mp.weixin.qq.com/wiki?action=doc&id=mp1451025283&t=0.8029895777585161#6.1'>接口激活</a>
|
||||
*/
|
||||
public ApiResult activate(MemberInitInfo memberInitInfo) throws WeixinException {
|
||||
String card_member_card_activate_uri = getRequestUri("card_member_card_activate_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(card_member_card_activate_uri, token.getAccessToken()), JSON.toJSONString(memberInitInfo));
|
||||
return response.getAsResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置开卡字段接口
|
||||
* 开发者在创建时填入wx_activate字段后,
|
||||
* 需要调用该接口设置用户激活时需要填写的选项,否则一键开卡设置不生效。
|
||||
*
|
||||
* @see <a href='https://mp.weixin.qq.com/wiki?action=doc&id=mp1451025283&t=0.8029895777585161#6.2'>一键激活</a>
|
||||
*/
|
||||
public ApiResult setActivateUserForm(MemberUserForm memberUserForm) throws WeixinException {
|
||||
String user_form_uri = getRequestUri("card_member_card_activate_user_form_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(user_form_uri, token.getAccessToken()), JSON.toJSONString(memberUserForm));
|
||||
return response.getAsResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* 拉取会员信息接口。
|
||||
*
|
||||
* @param cardId the card id
|
||||
* @param code the code
|
||||
* @author fengyapeng
|
||||
* @since 2016 -12-21 11:28:45
|
||||
*/
|
||||
public MemberUserInfo getMemberUserInfo(String cardId, String code) throws WeixinException {
|
||||
String user_info_uri = getRequestUri("card_member_card_user_info_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("card_id", cardId);
|
||||
jsonObject.put("code", code);
|
||||
WeixinResponse response = weixinExecutor.post(String.format(user_info_uri, token.getAccessToken()), JSON.toJSONString(jsonObject));
|
||||
return response.getAsObject(new TypeReference<MemberUserInfo>() {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新会员
|
||||
* @param updateInfo
|
||||
* @return
|
||||
* @throws WeixinException
|
||||
*/
|
||||
public JSONObject updateUserInfo(MemberUpdateInfo updateInfo) throws WeixinException {
|
||||
String card_member_card_update_user_uri = getRequestUri("card_member_card_update_user_uri");
|
||||
Token token = tokenManager.getCache();
|
||||
WeixinResponse response = weixinExecutor
|
||||
.post(String.format(card_member_card_update_user_uri, token.getAccessToken()), JSON.toJSONString(updateInfo));
|
||||
return response.getAsJson();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -157,7 +157,7 @@ public class TmplApi extends MpApi {
|
||||
* @see com.foxinmy.weixin4j.mp.message.TemplateMessage
|
||||
* @see com.foxinmy.weixin4j.msg.event.TemplatesendjobfinishMessage
|
||||
*/
|
||||
public ApiResult sendTmplMessage(TemplateMessage tplMessage)
|
||||
public String sendTmplMessage(TemplateMessage tplMessage)
|
||||
throws WeixinException {
|
||||
Token token = tokenManager.getCache();
|
||||
String template_send_uri = getRequestUri("template_send_uri");
|
||||
@ -174,6 +174,6 @@ public class TmplApi extends MpApi {
|
||||
}
|
||||
}));
|
||||
|
||||
return response.getAsResult();
|
||||
return response.getAsJson().getString("msgid");
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package com.foxinmy.weixin4j.mp.test;
|
||||
|
||||
import com.foxinmy.weixin4j.exception.WeixinException;
|
||||
import com.foxinmy.weixin4j.http.weixin.ApiResult;
|
||||
import com.foxinmy.weixin4j.model.card.CardCoupon;
|
||||
import com.foxinmy.weixin4j.model.card.CardCoupons;
|
||||
import com.foxinmy.weixin4j.model.card.CardQR;
|
||||
import com.foxinmy.weixin4j.model.card.CouponBaseInfo;
|
||||
@ -13,7 +12,6 @@ import com.foxinmy.weixin4j.model.card.MemberUserForm;
|
||||
import com.foxinmy.weixin4j.model.card.MemberUserInfo;
|
||||
import com.foxinmy.weixin4j.model.qr.QRResult;
|
||||
import com.foxinmy.weixin4j.mp.api.CardApi;
|
||||
import com.foxinmy.weixin4j.mp.api.MemberCardApi;
|
||||
import com.foxinmy.weixin4j.type.card.ActivateCommonField;
|
||||
import com.foxinmy.weixin4j.type.card.ActivateFormFieldType;
|
||||
import com.foxinmy.weixin4j.type.card.CardCodeType;
|
||||
@ -31,14 +29,14 @@ import org.junit.Test;
|
||||
*/
|
||||
public class MemberCardTest extends TokenTest {
|
||||
|
||||
private CardApi cardApi;
|
||||
|
||||
private MemberCardApi memberCardApi;
|
||||
|
||||
private CardApi cardApi;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
|
||||
cardApi = new CardApi(tokenManager);
|
||||
memberCardApi = new MemberCardApi(tokenManager);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,7 +62,7 @@ public class MemberCardTest extends TokenTest {
|
||||
"https://mmbiz.qlogo.cn/mmbiz/2FyQ9TURqmdibM6nYBiagZT49lSlY9Aicw4P3vsoa7dEZIYfNkiaMyzNVYT9jmYhjBbeC8jnkibwbibB5tghC5XcgysQ/0?wx_fmt=jpeg");
|
||||
|
||||
MemberCard memberCard = CardCoupons.createMemberCard(builder, memberCardBuilder);
|
||||
String cardId = memberCardApi.createCardCoupon(memberCard);
|
||||
String cardId = cardApi.createCardCoupon(memberCard);
|
||||
System.out.println(cardId);
|
||||
}
|
||||
|
||||
@ -72,7 +70,7 @@ public class MemberCardTest extends TokenTest {
|
||||
@Test
|
||||
public void createCardQR() throws WeixinException {
|
||||
CardQR.Builder builder = new CardQR.Builder("pn-YDwk59Ft0JSFdGqObxUccUQHw");
|
||||
QRResult qrResult = memberCardApi.createCardQR(36000, builder.build());
|
||||
QRResult qrResult = cardApi.createCardQR(36000, builder.build());
|
||||
String showUrl = qrResult.getShowUrl();
|
||||
System.out.println(showUrl);
|
||||
}
|
||||
@ -95,13 +93,13 @@ public class MemberCardTest extends TokenTest {
|
||||
.addRichField(ActivateFormFieldType.FORM_FIELD_CHECK_BOX, "checkBoxOPt", "value1", "value2", "value3");
|
||||
memberUserForm.setOptionalForm(optionalFormBuilder);
|
||||
memberUserForm.setServiceStatement("会员守则","https://www.baidu.com");
|
||||
ApiResult apiResult = memberCardApi.setActivateUserForm(memberUserForm);
|
||||
ApiResult apiResult = cardApi.setActivateUserForm(memberUserForm);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getMemberUserInfo() throws WeixinException {
|
||||
MemberUserInfo memberUserInfo = memberCardApi.getMemberUserInfo("pn-YDwk59Ft0JSFdGqObxUccUQHw", "270869833860");
|
||||
MemberUserInfo memberUserInfo = cardApi.getMemberUserInfo("pn-YDwk59Ft0JSFdGqObxUccUQHw", "270869833860");
|
||||
System.out.println(memberUserInfo);
|
||||
}
|
||||
|
||||
@ -115,7 +113,7 @@ public class MemberCardTest extends TokenTest {
|
||||
memberInitInfo.setInitBalance(2);
|
||||
memberInitInfo.setInitBonus(2);
|
||||
memberInitInfo.setInitBonusRecord("初始化积分");
|
||||
ApiResult activate = memberCardApi.activate(memberInitInfo);
|
||||
ApiResult activate = cardApi.activate(memberInitInfo);
|
||||
System.out.println(activate);
|
||||
}
|
||||
|
||||
@ -128,7 +126,7 @@ public class MemberCardTest extends TokenTest {
|
||||
memberUpdateInfo.setRecordBalance("充值");
|
||||
memberUpdateInfo.setNOtify(true,true);
|
||||
memberUpdateInfo.setCustomFieldValue1("至尊铂金",true);
|
||||
memberCardApi.updateUserInfo(memberUpdateInfo);
|
||||
cardApi.updateUserInfo(memberUpdateInfo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user