@@ -257,9 +257,8 @@ public class WxMpServiceImpl implements WxMpService { | |||||
@Override | @Override | ||||
public String templateSend(WxMpTemplateMessage templateMessage) throws WxErrorException { | public String templateSend(WxMpTemplateMessage templateMessage) throws WxErrorException { | ||||
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send"; | String url = "https://api.weixin.qq.com/cgi-bin/message/template/send"; | ||||
String responseContent = execute(new SimplePostRequestExecutor(), url, templateMessage.toJson()); | |||||
JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); | |||||
final JsonObject jsonObject = tmpJsonElement.getAsJsonObject(); | |||||
String responseContent = this.post(url, templateMessage.toJson()); | |||||
final JsonObject jsonObject = JSON_PARSER.parse(responseContent).getAsJsonObject(); | |||||
if (jsonObject.get("errcode").getAsInt() == 0){ | if (jsonObject.get("errcode").getAsInt() == 0){ | ||||
return jsonObject.get("msgid").getAsString(); | return jsonObject.get("msgid").getAsString(); | ||||
} | } | ||||
@@ -7,9 +7,6 @@ import java.io.Serializable; | |||||
*/ | */ | ||||
public class WxMpTemplateData implements Serializable { | public class WxMpTemplateData implements Serializable { | ||||
/** | |||||
* | |||||
*/ | |||||
private static final long serialVersionUID = 6301835292940277870L; | private static final long serialVersionUID = 6301835292940277870L; | ||||
private String name; | private String name; | ||||
private String value; | private String value; | ||||
@@ -48,6 +45,7 @@ public class WxMpTemplateData implements Serializable { | |||||
public String getColor() { | public String getColor() { | ||||
return this.color; | return this.color; | ||||
} | } | ||||
public void setColor(String color) { | public void setColor(String color) { | ||||
this.color = color; | this.color = color; | ||||
} | } | ||||
@@ -1,17 +1,14 @@ | |||||
package me.chanjar.weixin.mp.bean; | package me.chanjar.weixin.mp.bean; | ||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
public class WxMpTemplateMessage implements Serializable { | |||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||||
/** | |||||
* | |||||
*/ | |||||
public class WxMpTemplateMessage implements Serializable { | |||||
private static final long serialVersionUID = 5063374783759519418L; | private static final long serialVersionUID = 5063374783759519418L; | ||||
private String toUser; | private String toUser; | ||||
private String templateId; | private String templateId; | ||||
private String url; | private String url; | ||||
@@ -65,4 +62,61 @@ public class WxMpTemplateMessage implements Serializable { | |||||
public String toJson() { | public String toJson() { | ||||
return WxMpGsonBuilder.INSTANCE.create().toJson(this); | return WxMpGsonBuilder.INSTANCE.create().toJson(this); | ||||
} | } | ||||
public static WxMpTemplateMessageBuilder builder() { | |||||
return new WxMpTemplateMessageBuilder(); | |||||
} | |||||
public static class WxMpTemplateMessageBuilder { | |||||
private String toUser; | |||||
private String templateId; | |||||
private String url; | |||||
private String topColor; | |||||
private List<WxMpTemplateData> data = new ArrayList<>(); | |||||
public WxMpTemplateMessageBuilder toUser(String toUser) { | |||||
this.toUser = toUser; | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessageBuilder templateId(String templateId) { | |||||
this.templateId = templateId; | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessageBuilder url(String url) { | |||||
this.url = url; | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessageBuilder topColor(String topColor) { | |||||
this.topColor = topColor; | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessageBuilder data(List<WxMpTemplateData> data) { | |||||
this.data = data; | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessageBuilder from(WxMpTemplateMessage origin) { | |||||
this.toUser(origin.toUser); | |||||
this.templateId(origin.templateId); | |||||
this.url(origin.url); | |||||
this.topColor(origin.topColor); | |||||
this.data(origin.data); | |||||
return this; | |||||
} | |||||
public WxMpTemplateMessage build() { | |||||
WxMpTemplateMessage m = new WxMpTemplateMessage(); | |||||
m.toUser = this.toUser; | |||||
m.templateId = this.templateId; | |||||
m.url = this.url; | |||||
m.topColor = this.topColor; | |||||
m.data = this.data; | |||||
return m; | |||||
} | |||||
} | |||||
} | } |
@@ -3,15 +3,12 @@ package me.chanjar.weixin.mp.api; | |||||
import java.io.IOException; | import java.io.IOException; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; | |||||
import org.apache.commons.lang3.builder.ToStringBuilder; | |||||
import com.google.inject.Binder; | import com.google.inject.Binder; | ||||
import com.google.inject.Module; | import com.google.inject.Module; | ||||
import com.thoughtworks.xstream.XStream; | import com.thoughtworks.xstream.XStream; | ||||
import com.thoughtworks.xstream.annotations.XStreamAlias; | |||||
import me.chanjar.weixin.common.util.xml.XStreamInitializer; | import me.chanjar.weixin.common.util.xml.XStreamInitializer; | ||||
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; | |||||
public class ApiTestModule implements Module { | public class ApiTestModule implements Module { | ||||
@@ -19,8 +16,8 @@ public class ApiTestModule implements Module { | |||||
public void configure(Binder binder) { | public void configure(Binder binder) { | ||||
try (InputStream is1 = ClassLoader | try (InputStream is1 = ClassLoader | ||||
.getSystemResourceAsStream("test-config.xml")) { | .getSystemResourceAsStream("test-config.xml")) { | ||||
WxXmlMpInMemoryConfigStorage config = fromXml( | |||||
WxXmlMpInMemoryConfigStorage.class, is1); | |||||
WxXmlMpInMemoryConfigStorage config = this | |||||
.fromXml(WxXmlMpInMemoryConfigStorage.class, is1); | |||||
WxMpServiceImpl wxService = new WxMpServiceImpl(); | WxMpServiceImpl wxService = new WxMpServiceImpl(); | ||||
wxService.setWxMpConfigStorage(config); | wxService.setWxMpConfigStorage(config); | ||||
@@ -32,50 +29,11 @@ public class ApiTestModule implements Module { | |||||
} | } | ||||
@SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
public static <T> T fromXml(Class<T> clazz, InputStream is) { | |||||
private <T> T fromXml(Class<T> clazz, InputStream is) { | |||||
XStream xstream = XStreamInitializer.getInstance(); | XStream xstream = XStreamInitializer.getInstance(); | ||||
xstream.alias("xml", clazz); | xstream.alias("xml", clazz); | ||||
xstream.processAnnotations(clazz); | xstream.processAnnotations(clazz); | ||||
return (T) xstream.fromXML(is); | return (T) xstream.fromXML(is); | ||||
} | } | ||||
@XStreamAlias("xml") | |||||
public static class WxXmlMpInMemoryConfigStorage | |||||
extends WxMpInMemoryConfigStorage { | |||||
private String openid; | |||||
private String kfAccount; | |||||
private String qrconnectRedirectUrl; | |||||
public String getOpenid() { | |||||
return this.openid; | |||||
} | |||||
public void setOpenid(String openid) { | |||||
this.openid = openid; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return ToStringBuilder.reflectionToString(this); | |||||
} | |||||
public String getKfAccount() { | |||||
return this.kfAccount; | |||||
} | |||||
public void setKfAccount(String kfAccount) { | |||||
this.kfAccount = kfAccount; | |||||
} | |||||
public String getQrconnectRedirectUrl() { | |||||
return this.qrconnectRedirectUrl; | |||||
} | |||||
public void setQrconnectRedirectUrl(String qrconnectRedirectUrl) { | |||||
this.qrconnectRedirectUrl = qrconnectRedirectUrl; | |||||
} | |||||
} | |||||
} | } |
@@ -36,7 +36,7 @@ public class WxMpMassMessageAPITest { | |||||
@Test | @Test | ||||
public void testTextMassOpenIdsMessageSend() throws WxErrorException { | public void testTextMassOpenIdsMessageSend() throws WxErrorException { | ||||
// 发送群发消息 | // 发送群发消息 | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | ||||
massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | massMessage.setMsgType(WxConsts.MASS_MSG_TEXT); | ||||
@@ -53,7 +53,7 @@ public class WxMpMassMessageAPITest { | |||||
public void testMediaMassOpenIdsMessageSend(String massMsgType, | public void testMediaMassOpenIdsMessageSend(String massMsgType, | ||||
String mediaId) throws WxErrorException { | String mediaId) throws WxErrorException { | ||||
// 发送群发消息 | // 发送群发消息 | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | WxMpMassOpenIdsMessage massMessage = new WxMpMassOpenIdsMessage(); | ||||
massMessage.setMsgType(massMsgType); | massMessage.setMsgType(massMsgType); | ||||
@@ -0,0 +1,57 @@ | |||||
/** | |||||
* Copyright(c) 2011-2016 by UCredit Inc. | |||||
* All Rights Reserved | |||||
*/ | |||||
package me.chanjar.weixin.mp.api; | |||||
import org.apache.commons.lang3.builder.ToStringBuilder; | |||||
import com.thoughtworks.xstream.annotations.XStreamAlias; | |||||
@XStreamAlias("xml") | |||||
public class WxXmlMpInMemoryConfigStorage | |||||
extends WxMpInMemoryConfigStorage { | |||||
private String openid; | |||||
private String kfAccount; | |||||
private String qrconnectRedirectUrl; | |||||
private String templateId; | |||||
public String getOpenid() { | |||||
return this.openid; | |||||
} | |||||
public void setOpenid(String openid) { | |||||
this.openid = openid; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return ToStringBuilder.reflectionToString(this); | |||||
} | |||||
public String getKfAccount() { | |||||
return this.kfAccount; | |||||
} | |||||
public void setKfAccount(String kfAccount) { | |||||
this.kfAccount = kfAccount; | |||||
} | |||||
public String getQrconnectRedirectUrl() { | |||||
return this.qrconnectRedirectUrl; | |||||
} | |||||
public void setQrconnectRedirectUrl(String qrconnectRedirectUrl) { | |||||
this.qrconnectRedirectUrl = qrconnectRedirectUrl; | |||||
} | |||||
public String getTemplateId() { | |||||
return this.templateId; | |||||
} | |||||
public void setTemplateId(String templateId) { | |||||
this.templateId = templateId; | |||||
} | |||||
} |
@@ -3,6 +3,7 @@ package me.chanjar.weixin.mp.api.impl; | |||||
import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.WxMpGroup; | import me.chanjar.weixin.mp.bean.WxMpGroup; | ||||
import org.testng.Assert; | import org.testng.Assert; | ||||
import org.testng.annotations.Guice; | import org.testng.annotations.Guice; | ||||
@@ -48,13 +49,13 @@ public class WxMpGroupServiceImplTest { | |||||
} | } | ||||
public void testGroupQueryUserGroup() throws WxErrorException { | public void testGroupQueryUserGroup() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
long groupid = this.wxService.getGroupService().userGetGroup(configStorage.getOpenid()); | long groupid = this.wxService.getGroupService().userGetGroup(configStorage.getOpenid()); | ||||
Assert.assertTrue(groupid != -1l); | Assert.assertTrue(groupid != -1l); | ||||
} | } | ||||
public void testGroupMoveUser() throws WxErrorException { | public void testGroupMoveUser() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
this.wxService.getGroupService().userUpdateGroup(configStorage.getOpenid(), this.wxService.getGroupService().groupGet().get(3).getId()); | this.wxService.getGroupService().userUpdateGroup(configStorage.getOpenid(), this.wxService.getGroupService().groupGet().get(3).getId()); | ||||
} | } | ||||
@@ -14,7 +14,7 @@ import com.google.inject.Inject; | |||||
import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.WxMpCustomMessage; | import me.chanjar.weixin.mp.bean.WxMpCustomMessage; | ||||
import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest; | import me.chanjar.weixin.mp.bean.kefu.request.WxMpKfAccountRequest; | ||||
import me.chanjar.weixin.mp.bean.kefu.result.WxMpKfInfo; | import me.chanjar.weixin.mp.bean.kefu.result.WxMpKfInfo; | ||||
@@ -38,7 +38,7 @@ public class WxMpKefuServiceImplTest { | |||||
protected WxMpServiceImpl wxService; | protected WxMpServiceImpl wxService; | ||||
public void testSendCustomMessage() throws WxErrorException { | public void testSendCustomMessage() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
WxMpCustomMessage message = new WxMpCustomMessage(); | WxMpCustomMessage message = new WxMpCustomMessage(); | ||||
message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | ||||
@@ -50,7 +50,7 @@ public class WxMpKefuServiceImplTest { | |||||
} | } | ||||
public void testSendCustomMessageWithKfAccount() throws WxErrorException { | public void testSendCustomMessageWithKfAccount() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
WxMpCustomMessage message = new WxMpCustomMessage(); | WxMpCustomMessage message = new WxMpCustomMessage(); | ||||
message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | message.setMsgType(WxConsts.CUSTOM_MSG_TEXT); | ||||
@@ -7,6 +7,7 @@ import com.google.inject.Inject; | |||||
import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.pay.WxRedpackResult; | import me.chanjar.weixin.mp.bean.pay.WxRedpackResult; | ||||
import me.chanjar.weixin.mp.bean.pay.WxSendRedpackRequest; | import me.chanjar.weixin.mp.bean.pay.WxSendRedpackRequest; | ||||
import me.chanjar.weixin.mp.bean.pay.WxUnifiedOrderRequest; | import me.chanjar.weixin.mp.bean.pay.WxUnifiedOrderRequest; | ||||
@@ -71,7 +72,7 @@ public class WxMpPayServiceImplTest { | |||||
request.setClientIp("aaa"); | request.setClientIp("aaa"); | ||||
request.setMchBillno("aaaa"); | request.setMchBillno("aaaa"); | ||||
request | request | ||||
.setReOpenid(((ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()); | |||||
.setReOpenid(((WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()); | |||||
WxRedpackResult redpackResult = this.wxService.getPayService().sendRedpack(request); | WxRedpackResult redpackResult = this.wxService.getPayService().sendRedpack(request); | ||||
System.err.println(redpackResult); | System.err.println(redpackResult); | ||||
} | } | ||||
@@ -1,5 +1,8 @@ | |||||
package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||
import java.text.SimpleDateFormat; | |||||
import java.util.Date; | |||||
import org.testng.Assert; | import org.testng.Assert; | ||||
import org.testng.annotations.Guice; | import org.testng.annotations.Guice; | ||||
import org.testng.annotations.Test; | import org.testng.annotations.Test; | ||||
@@ -7,8 +10,11 @@ import org.testng.annotations.Test; | |||||
import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
import me.chanjar.weixin.common.api.WxConsts; | import me.chanjar.weixin.common.api.WxConsts; | ||||
import me.chanjar.weixin.common.exception.WxErrorException; | |||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.WxMpTemplateData; | |||||
import me.chanjar.weixin.mp.bean.WxMpTemplateMessage; | |||||
@Test | @Test | ||||
@Guice(modules = ApiTestModule.class) | @Guice(modules = ApiTestModule.class) | ||||
@@ -82,9 +88,18 @@ public class WxMpServiceImplTest { | |||||
Assert.fail("Not yet implemented"); | Assert.fail("Not yet implemented"); | ||||
} | } | ||||
@Test | |||||
public void testTemplateSend() { | |||||
Assert.fail("Not yet implemented"); | |||||
@Test(invocationCount = 100, threadPoolSize = 30) | |||||
public void testTemplateSend() throws WxErrorException { | |||||
SimpleDateFormat dateFormat = new SimpleDateFormat( | |||||
"yyyy-MM-dd HH:mm:ss.SSS"); | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | |||||
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() | |||||
.toUser(configStorage.getOpenid()) | |||||
.templateId(configStorage.getTemplateId()).build(); | |||||
templateMessage.addWxMpTemplateData( | |||||
new WxMpTemplateData("first", dateFormat.format(new Date()))); | |||||
this.wxService.templateSend(templateMessage); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -1,6 +1,7 @@ | |||||
package me.chanjar.weixin.mp.api.impl; | package me.chanjar.weixin.mp.api.impl; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.result.WxMpUserBlacklistGetResult; | import me.chanjar.weixin.mp.bean.result.WxMpUserBlacklistGetResult; | ||||
import org.testng.Assert; | import org.testng.Assert; | ||||
import org.testng.annotations.Guice; | import org.testng.annotations.Guice; | ||||
@@ -21,7 +22,7 @@ public class WxMpUserBlacklistServiceImplTest { | |||||
@Test | @Test | ||||
public void testGetBlacklist() throws Exception { | public void testGetBlacklist() throws Exception { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
WxMpUserBlacklistGetResult wxMpUserBlacklistGetResult = this.wxService.getBlackListService().getBlacklist(configStorage.getOpenid()); | WxMpUserBlacklistGetResult wxMpUserBlacklistGetResult = this.wxService.getBlackListService().getBlacklist(configStorage.getOpenid()); | ||||
Assert.assertNotNull(wxMpUserBlacklistGetResult); | Assert.assertNotNull(wxMpUserBlacklistGetResult); | ||||
@@ -33,7 +34,7 @@ public class WxMpUserBlacklistServiceImplTest { | |||||
@Test | @Test | ||||
public void testPushToBlacklist() throws Exception { | public void testPushToBlacklist() throws Exception { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
List<String> openidList = new ArrayList<>(); | List<String> openidList = new ArrayList<>(); | ||||
openidList.add(configStorage.getOpenid()); | openidList.add(configStorage.getOpenid()); | ||||
@@ -42,7 +43,7 @@ public class WxMpUserBlacklistServiceImplTest { | |||||
@Test | @Test | ||||
public void testPullFromBlacklist() throws Exception { | public void testPullFromBlacklist() throws Exception { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configStorage = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService | |||||
WxXmlMpInMemoryConfigStorage configStorage = (WxXmlMpInMemoryConfigStorage) this.wxService | |||||
.getWxMpConfigStorage(); | .getWxMpConfigStorage(); | ||||
List<String> openidList = new ArrayList<>(); | List<String> openidList = new ArrayList<>(); | ||||
openidList.add(configStorage.getOpenid()); | openidList.add(configStorage.getOpenid()); | ||||
@@ -8,6 +8,7 @@ import com.google.inject.Inject; | |||||
import me.chanjar.weixin.common.exception.WxErrorException; | import me.chanjar.weixin.common.exception.WxErrorException; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.result.WxMpUser; | import me.chanjar.weixin.mp.bean.result.WxMpUser; | ||||
import me.chanjar.weixin.mp.bean.result.WxMpUserList; | import me.chanjar.weixin.mp.bean.result.WxMpUserList; | ||||
@@ -25,12 +26,12 @@ public class WxMpUserServiceImplTest { | |||||
protected WxMpServiceImpl wxService; | protected WxMpServiceImpl wxService; | ||||
public void testUserUpdateRemark() throws WxErrorException { | public void testUserUpdateRemark() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
this.wxService.getUserService().userUpdateRemark(configProvider.getOpenid(), "测试备注名"); | this.wxService.getUserService().userUpdateRemark(configProvider.getOpenid(), "测试备注名"); | ||||
} | } | ||||
public void testUserInfo() throws WxErrorException { | public void testUserInfo() throws WxErrorException { | ||||
ApiTestModule.WxXmlMpInMemoryConfigStorage configProvider = (ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
WxXmlMpInMemoryConfigStorage configProvider = (WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage(); | |||||
WxMpUser user = this.wxService.getUserService().userInfo(configProvider.getOpenid(), null); | WxMpUser user = this.wxService.getUserService().userInfo(configProvider.getOpenid(), null); | ||||
Assert.assertNotNull(user); | Assert.assertNotNull(user); | ||||
System.out.println(user); | System.out.println(user); | ||||
@@ -2,6 +2,7 @@ package me.chanjar.weixin.mp.api.impl; | |||||
import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
import me.chanjar.weixin.mp.api.ApiTestModule; | import me.chanjar.weixin.mp.api.ApiTestModule; | ||||
import me.chanjar.weixin.mp.api.WxXmlMpInMemoryConfigStorage; | |||||
import me.chanjar.weixin.mp.bean.tag.WxTagListUser; | import me.chanjar.weixin.mp.bean.tag.WxTagListUser; | ||||
import me.chanjar.weixin.mp.bean.tag.WxUserTag; | import me.chanjar.weixin.mp.bean.tag.WxUserTag; | ||||
import org.testng.Assert; | import org.testng.Assert; | ||||
@@ -63,7 +64,7 @@ public class WxMpUserTagServiceImplTest { | |||||
@Test | @Test | ||||
public void testBatchUntagging() throws Exception { | public void testBatchUntagging() throws Exception { | ||||
String[] openids = new String[]{((ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()}; | |||||
String[] openids = new String[]{((WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()}; | |||||
boolean res = this.wxService.getUserTagService().batchUntagging(this.tagId, openids); | boolean res = this.wxService.getUserTagService().batchUntagging(this.tagId, openids); | ||||
System.out.println(res); | System.out.println(res); | ||||
Assert.assertTrue(res); | Assert.assertTrue(res); | ||||
@@ -72,7 +73,7 @@ public class WxMpUserTagServiceImplTest { | |||||
@Test | @Test | ||||
public void testUserTagList() throws Exception { | public void testUserTagList() throws Exception { | ||||
List<Integer> res = this.wxService.getUserTagService().userTagList( | List<Integer> res = this.wxService.getUserTagService().userTagList( | ||||
((ApiTestModule.WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()); | |||||
((WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid()); | |||||
System.out.println(res); | System.out.println(res); | ||||
Assert.assertNotNull(res); | Assert.assertNotNull(res); | ||||
} | } | ||||
@@ -6,6 +6,7 @@ | |||||
<accessToken>可以不填写</accessToken> | <accessToken>可以不填写</accessToken> | ||||
<expiresTime>可以不填写</expiresTime> | <expiresTime>可以不填写</expiresTime> | ||||
<openid>某个加你公众号的用户的openId</openid> | <openid>某个加你公众号的用户的openId</openid> | ||||
<templateId>模版消息的模版ID</templateId> | |||||
<oauth2redirectUri>网页授权获取用户信息回调地址</oauth2redirectUri> | <oauth2redirectUri>网页授权获取用户信息回调地址</oauth2redirectUri> | ||||
<qrconnectRedirectUrl>网页应用授权登陆回调地址</qrconnectRedirectUrl> | <qrconnectRedirectUrl>网页应用授权登陆回调地址</qrconnectRedirectUrl> | ||||
<kfAccount>完整客服账号,格式为:账号前缀@公众号微信号</kfAccount> | <kfAccount>完整客服账号,格式为:账号前缀@公众号微信号</kfAccount> | ||||