优化注释和方法名

This commit is contained in:
jinyu 2016-04-05 19:28:29 +08:00
parent d9226402cf
commit 7377d3df00
12 changed files with 230 additions and 263 deletions

View File

@ -239,10 +239,10 @@ public class WeixinProxy {
* 否则抛出异常.
* </p>
*
* @param isMaterial
* 是否永久上传
* @param is
* 媒体数据流
* @param mediaType
* 媒体文件类型分别有图片image语音voice视频(video)和缩略图thumb
* @param fileName
* 文件名
* @return 上传到微信服务器返回的媒体标识
@ -336,8 +336,7 @@ public class WeixinProxy {
* "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1444738732&token=&lang=zh_CN">
* 更新永久图文素材</a>
*/
public JsonResult updateMaterialArticle(String mediaId, int index, MpArticle article)
throws WeixinException {
public JsonResult updateMaterialArticle(String mediaId, int index, MpArticle article) throws WeixinException {
return mediaApi.updateMaterialArticle(mediaId, index, article);
}
@ -524,8 +523,7 @@ public class WeixinProxy {
* 客服账号登录密码
* @return 处理结果
* @throws WeixinException
* @see com.foxinmy.weixin4j.mp.api.CustomApi
* 客服管理接口返回码</a>
* @see com.foxinmy.weixin4j.mp.api.CustomApi 客服管理接口返回码</a>
* @see <a href=
* "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
* 新增客服账号</a>
@ -1443,8 +1441,8 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.mp.api.HelperApi
* @throws WeixinException
*/
public List<String> getCallbackip() throws WeixinException {
return helperApi.getCallbackip();
public List<String> getWechatServerIp() throws WeixinException {
return helperApi.getWechatServerIp();
}
/**

View File

@ -90,7 +90,7 @@ public class HelperApi extends MpApi {
* href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140187&token=&lang=zh_CN">获取IP地址</a>
* @throws WeixinException
*/
public List<String> getCallbackip() throws WeixinException {
public List<String> getWechatServerIp() throws WeixinException {
String getcallbackip_uri = getRequestUri("getcallbackip_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.post(String.format(getcallbackip_uri,

View File

@ -1,35 +1,35 @@
package com.foxinmy.weixin4j.mp.test;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.mp.api.HelperApi;
public class HelpTest extends TokenTest {
private HelperApi helperApi;
@Before
public void init() {
helperApi = new HelperApi(tokenHolder);
}
@Test
public void getcallbackip() throws WeixinException {
List<String> ipList = helperApi.getCallbackip();
Assert.assertFalse(ipList.isEmpty());
}
@Test
public void getMenuSetting() throws WeixinException {
System.err.println(helperApi.getMenuSetting());
}
@Test
public void getAutoReplySetting() throws WeixinException {
System.err.println(helperApi.getAutoReplySetting());
}
}
package com.foxinmy.weixin4j.mp.test;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.mp.api.HelperApi;
public class HelpTest extends TokenTest {
private HelperApi helperApi;
@Before
public void init() {
helperApi = new HelperApi(tokenHolder);
}
@Test
public void getWechatServerIp() throws WeixinException {
List<String> ipList = helperApi.getWechatServerIp();
Assert.assertFalse(ipList.isEmpty());
}
@Test
public void getMenuSetting() throws WeixinException {
System.err.println(helperApi.getMenuSetting());
}
@Test
public void getAutoReplySetting() throws WeixinException {
System.err.println(helperApi.getAutoReplySetting());
}
}

View File

@ -126,8 +126,8 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.util.Weixin4jSettings
*/
public WeixinProxy(Weixin4jSettings settings) {
this(new TokenHolder(new WeixinTokenCreator(settings.getWeixinAccount()
.getId(), settings.getWeixinAccount().getSecret()),
this(new TokenHolder(
new WeixinTokenCreator(settings.getWeixinAccount().getId(), settings.getWeixinAccount().getSecret()),
settings.getTokenStorager0()));
this.settings = settings;
}
@ -144,17 +144,15 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.qy.api.SuiteApi
* @see WeixinSuiteProxy#getWeixinProxy(String, String)
*/
public WeixinProxy(SuitePerCodeHolder perCodeHolder,
TokenHolder suiteTokenHolder) {
this(new TokenHolder(new WeixinTokenSuiteCreator(perCodeHolder,
suiteTokenHolder), perCodeHolder.getTokenStorager()));
this.settings = new Weixin4jSettings(new WeixinAccount(
perCodeHolder.getAuthCorpId(), null));
public WeixinProxy(SuitePerCodeHolder perCodeHolder, TokenHolder suiteTokenHolder) {
this(new TokenHolder(new WeixinTokenSuiteCreator(perCodeHolder, suiteTokenHolder),
perCodeHolder.getTokenStorager()));
this.settings = new Weixin4jSettings(new WeixinAccount(perCodeHolder.getAuthCorpId(), null));
}
/**
* 注意TokenCreator 需为 <font
* color="red">WeixinTokenCreator或WeixinTokenSuiteCreator</font>
* 注意TokenCreator 需为
* <font color="red">WeixinTokenCreator或WeixinTokenSuiteCreator</font>
*
* @see com.foxinmy.weixin4j.qy.token.WeixinTokenCreator.WeixinTokenCreator
* @param tokenHolder
@ -199,8 +197,7 @@ public class WeixinProxy {
* @return
*/
public TokenHolder getTicketHolder(TicketType ticketType) {
return new TokenHolder(new WeixinTicketCreator(getWeixinAccount()
.getId(), ticketType, this.tokenHolder),
return new TokenHolder(new WeixinTicketCreator(getWeixinAccount().getId(), ticketType, this.tokenHolder),
this.settings.getTokenStorager0());
}
@ -215,7 +212,8 @@ public class WeixinProxy {
* @param message
* 客服消息对象
* @return 如果对应用或收件人部门标签任何一个无权限则本次发送失败如果收件人部门或标签不存在发送仍然执行但返回无效的部分
* </br> { "errcode": 0, "errmsg": "ok", "invaliduser": "UserID1",
* </br>
* { "errcode": 0, "errmsg": "ok", "invaliduser": "UserID1",
* "invalidparty":"PartyID1", "invalidtag":"TagID1" }
* @throws WeixinException
* @see com.foxinmy.weixin4j.qy.api.NotifyApi
@ -234,8 +232,7 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.tuple.MpNews
* @see com.foxinmy.weixin4j.qy.model.IdParameter
*/
public IdParameter sendNotifyMessage(NotifyMessage message)
throws WeixinException {
public IdParameter sendNotifyMessage(NotifyMessage message) throws WeixinException {
return notifyApi.sendNotifyMessage(message);
}
@ -245,8 +242,9 @@ public class WeixinProxy {
* @param message
* 客服消息对象
* @return 发送结果
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%9C%8D%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">客服接口说明</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%9C%8D%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">
* 客服接口说明</a>
* @see com.foxinmy.weixin4j.qy.api.NotifyApi
* @see com.foxinmy.weixin4j.tuple.Text
* @see com.foxinmy.weixin4j.tuple.Image
@ -256,8 +254,7 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.qy.message.CustomeMessage
* @throws WeixinException
*/
public JsonResult sendCustomeMessage(CustomeMessage message)
throws WeixinException {
public JsonResult sendCustomeMessage(CustomeMessage message) throws WeixinException {
return notifyApi.sendCustomeMessage(message);
}
@ -269,8 +266,9 @@ public class WeixinProxy {
* @return 第一个元素为内部客服(internal),第二个参数为外部客服(external)
* @see com.foxinmy.weixin4j.qy.api.NotifyApi
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%9C%8D%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">客服列表</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%9C%8D%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">
* 客服列表</a>
* @throws WeixinException
*/
public IdParameter[] getKfList(KfType kfType) throws WeixinException {
@ -280,10 +278,11 @@ public class WeixinProxy {
/**
* 自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
*
* @param buttons
* 菜单列表
* @param agentid
* 应用ID
*
* @param buttons
* 菜单列表
* @throws WeixinException
* @see com.foxinmy.weixin4j.qy.api.MenuApi
* @see <a href=
@ -291,9 +290,8 @@ public class WeixinProxy {
* 创建自定义菜单</a>
* @see com.foxinmy.weixin4j.model.Button
*/
public JsonResult createMenu(List<Button> buttons, int agentid)
throws WeixinException {
return menuApi.createMenu(buttons, agentid);
public JsonResult createMenu(int agentid, List<Button> buttons) throws WeixinException {
return menuApi.createMenu(agentid, buttons);
}
/**
@ -337,14 +335,14 @@ public class WeixinProxy {
* 图片数据
* @param fileName
* 文件名
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E5%9B%BE%E6%96%87%E6%B6%88%E6%81%AF%E5%86%85%E7%9A%84%E5%9B%BE%E7%89%87">上传图文消息内的图片</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E5%9B%BE%E6%96%87%E6%B6%88%E6%81%AF%E5%86%85%E7%9A%84%E5%9B%BE%E7%89%87">
* 上传图文消息内的图片</a>
* @return 图片url
* @see com.foxinmy.weixin4j.qy.api.MediaApi
* @throws WeixinException
*/
public String uploadImage(InputStream is, String fileName)
throws WeixinException {
public String uploadImage(InputStream is, String fileName) throws WeixinException {
return mediaApi.uploadImage(is, fileName);
}
@ -372,8 +370,7 @@ public class WeixinProxy {
* 上传永久素材文件说明</a>
* @throws WeixinException
*/
public MediaUploadResult uploadMedia(int agentid, InputStream is,
String fileName) throws WeixinException {
public MediaUploadResult uploadMedia(int agentid, InputStream is, String fileName) throws WeixinException {
return mediaApi.uploadMedia(agentid, is, fileName);
}
@ -395,8 +392,7 @@ public class WeixinProxy {
* 获取永久媒体说明</a>
* @throws WeixinException
*/
public MediaDownloadResult downloadMedia(int agentid, String mediaId)
throws WeixinException {
public MediaDownloadResult downloadMedia(int agentid, String mediaId) throws WeixinException {
return mediaApi.downloadMedia(agentid, mediaId);
}
@ -419,8 +415,7 @@ public class WeixinProxy {
* 上传永久媒体素材</a>
* @see com.foxinmy.weixin4j.tuple.MpArticle
*/
public String uploadMaterialArticle(int agentid, List<MpArticle> articles)
throws WeixinException {
public String uploadMaterialArticle(int agentid, List<MpArticle> articles) throws WeixinException {
return mediaApi.uploadMaterialArticle(agentid, articles);
}
@ -438,8 +433,7 @@ public class WeixinProxy {
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E6%B0%B8%E4%B9%85%E7%B4%A0%E6%9D%90">
* 删除永久媒体素材</a>
*/
public JsonResult deleteMaterialMedia(int agentid, String mediaId)
throws WeixinException {
public JsonResult deleteMaterialMedia(int agentid, String mediaId) throws WeixinException {
return mediaApi.deleteMaterialMedia(agentid, mediaId);
}
@ -456,8 +450,7 @@ public class WeixinProxy {
* @see com.foxinmy.weixin4j.qy.api.MediaApi
* @see com.foxinmy.weixin4j.tuple.MpArticle
*/
public List<MpArticle> downloadArticle(int agentid, String mediaId)
throws WeixinException {
public List<MpArticle> downloadArticle(int agentid, String mediaId) throws WeixinException {
return mediaApi.downloadArticle(agentid, mediaId);
}
@ -478,8 +471,7 @@ public class WeixinProxy {
* 修改永久媒体素材</a>
* @see com.foxinmy.weixin4j.tuple.MpArticle
*/
public String updateMaterialArticle(int agentid, String mediaId,
List<MpArticle> articles) throws WeixinException {
public String updateMaterialArticle(int agentid, String mediaId, List<MpArticle> articles) throws WeixinException {
return mediaApi.updateMaterialArticle(agentid, mediaId, articles);
}
@ -521,8 +513,7 @@ public class WeixinProxy {
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%B4%A0%E6%9D%90%E5%88%97%E8%A1%A8">
* 获取素材列表</a>
*/
public MediaRecord listMaterialMedia(int agentid, MediaType mediaType,
Pageable pageable) throws WeixinException {
public MediaRecord listMaterialMedia(int agentid, MediaType mediaType, Pageable pageable) throws WeixinException {
return mediaApi.listMaterialMedia(agentid, mediaType, pageable);
}
@ -538,8 +529,7 @@ public class WeixinProxy {
* @see {@link #listMaterialMedia(int,MediaType, Pageable)}
* @throws WeixinException
*/
public List<MediaItem> listAllMaterialMedia(int agentid, MediaType mediaType)
throws WeixinException {
public List<MediaItem> listAllMaterialMedia(int agentid, MediaType mediaType) throws WeixinException {
return mediaApi.listAllMaterialMedia(agentid, mediaType);
}
@ -624,8 +614,7 @@ public class WeixinProxy {
* @return 上传后的mediaId
* @throws WeixinException
*/
public String batchUploadParties(List<Party> parties)
throws WeixinException {
public String batchUploadParties(List<Party> parties) throws WeixinException {
return mediaApi.batchUploadParties(parties);
}
@ -661,8 +650,7 @@ public class WeixinProxy {
* @return 处理结果
* @throws WeixinException
*/
public JsonResult createUser(User user, InputStream avatar)
throws WeixinException {
public JsonResult createUser(User user, InputStream avatar) throws WeixinException {
return userApi.createUser(user, avatar);
}
@ -698,8 +686,7 @@ public class WeixinProxy {
* @return 处理结果
* @throws WeixinException
*/
public JsonResult updateUser(User user, InputStream avatar)
throws WeixinException {
public JsonResult updateUser(User user, InputStream avatar) throws WeixinException {
return userApi.updateUser(user, avatar);
}
@ -762,7 +749,7 @@ public class WeixinProxy {
/**
* 获取部门成员
*
* @param departId
* @param partyId
* 部门ID 必须
* @param fetchChild
* 是否递归获取子部门下面的成员 非必须
@ -778,23 +765,23 @@ public class WeixinProxy {
* @return 成员列表
* @throws WeixinException
*/
public List<User> listUser(int departId, boolean fetchChild,
UserStatus userStatus, boolean findDetail) throws WeixinException {
return userApi.listUser(departId, fetchChild, userStatus, findDetail);
public List<User> listUser(int partyId, boolean fetchChild, UserStatus userStatus, boolean findDetail)
throws WeixinException {
return userApi.listUser(partyId, fetchChild, userStatus, findDetail);
}
/**
* 获取部门下所有状态成员(不进行递归)
*
* @param departId
* @param partyId
* 部门ID
* @see {@link #listUser(int, boolean,UserStatus)}
* @see com.foxinmy.weixin4j.qy.api.UserApi
* @return 成员列表
* @throws WeixinException
*/
public List<User> listUser(int departId) throws WeixinException {
return userApi.listUser(departId);
public List<User> listUser(int partyId) throws WeixinException {
return userApi.listUser(partyId);
}
/**
@ -825,8 +812,7 @@ public class WeixinProxy {
* @return 处理结果
* @throws WeixinException
*/
public JsonResult batchDeleteUser(List<String> userIds)
throws WeixinException {
public JsonResult batchDeleteUser(List<String> userIds) throws WeixinException {
return userApi.batchDeleteUser(userIds);
}
@ -844,8 +830,7 @@ public class WeixinProxy {
* 邀请成员关注说明</a>
* @throws WeixinException
*/
public InviteType inviteUser(String userId, String tips)
throws WeixinException {
public InviteType inviteUser(String userId, String tips) throws WeixinException {
return userApi.inviteUser(userId, tips);
}
@ -853,8 +838,9 @@ public class WeixinProxy {
* 创建标签(创建的标签属于管理组;默认为未加锁状态)
*
* @param tag
* 标签对象</br> 标签名称长度为1~64个字节标签名不可与其他标签重名</br> 标签id整型
* 指定此参数时新增的标签会生成对应的标签id不指定时则以目前最大的id自增
* 标签对象</br>
* 标签名称长度为1~64个字节标签名不可与其他标签重名</br>
* 标签id整型 指定此参数时新增的标签会生成对应的标签id不指定时则以目前最大的id自增
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%A0%87%E7%AD%BE#.E5.88.9B.E5.BB.BA.E6.A0.87.E7.AD.BE">
* 创建标签说明</a>
@ -924,8 +910,8 @@ public class WeixinProxy {
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%A0%87%E7%AD%BE#.E8.8E.B7.E5.8F.96.E6.A0.87.E7.AD.BE.E6.88.90.E5.91.98">
* 获取标签成员说明</a>
* @see com.foxinmy.weixin4j.qy.api.TagApi
* @return 成员列表<font color="red">Contacts#getUsers</font>和部门列表<font
* color="red">Contacts#getPartyIds</font>
* @return 成员列表<font color="red">Contacts#getUsers</font>和部门列表
* <font color="red">Contacts#getPartyIds</font>
* @throws WeixinException
*/
public Contacts getTagUsers(int tagId) throws WeixinException {
@ -933,8 +919,7 @@ public class WeixinProxy {
}
/**
* 新增标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)<br>
* <font color="red">若部分userid非法则在text中体现</font>
* 新增标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)
*
* @param tagId
* 标签ID
@ -947,17 +932,15 @@ public class WeixinProxy {
* 新增标签成员说明</a>
* @see com.foxinmy.weixin4j.qy.api.TagApi
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @return 处理结果
* @return 非法的userIds和partyIds
* @throws WeixinException
*/
public IdParameter addTagUsers(int tagId, List<String> userIds,
List<Integer> partyIds) throws WeixinException {
public IdParameter addTagUsers(int tagId, List<String> userIds, List<Integer> partyIds) throws WeixinException {
return tagApi.addTagUsers(tagId, userIds, partyIds);
}
/**
* 删除标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)<br>
* <font color="red">若部分userid非法则在text中体现</font>
* 删除标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)
*
* @param tagId
* 标签ID
@ -970,11 +953,10 @@ public class WeixinProxy {
* 删除标签成员说明</a>
* @see com.foxinmy.weixin4j.qy.api.TagApi
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @return 处理结果
* @return 非法的userIds和partyIds
* @throws WeixinException
*/
public IdParameter deleteTagUsers(int tagId, List<String> userIds,
List<Integer> partyIds) throws WeixinException {
public IdParameter deleteTagUsers(int tagId, List<String> userIds, List<Integer> partyIds) throws WeixinException {
return tagApi.deleteTagUsers(tagId, userIds, partyIds);
}
@ -988,8 +970,8 @@ public class WeixinProxy {
* 获取IP地址</a>
* @throws WeixinException
*/
public List<String> getCallbackip() throws WeixinException {
return helperApi.getCallbackip();
public List<String> getWechatServerIp() throws WeixinException {
return helperApi.getWechatServerIp();
}
/**
@ -1059,8 +1041,7 @@ public class WeixinProxy {
* 邀请成员关注</a>
* @throws WeixinException
*/
public String batchInviteUser(IdParameter parameter, Callback callback,
String tips) throws WeixinException {
public String batchInviteUser(IdParameter parameter, Callback callback, String tips) throws WeixinException {
return batchApi.inviteUser(parameter, callback, tips);
}
@ -1068,7 +1049,8 @@ public class WeixinProxy {
* 批量更新成员,本接口以userid为主键增量更新企业号通讯录成员
* <p>
* 1.模板中的部门需填写部门ID多个部门用分号分隔部门ID必须为数字</br>
* 2.文件中存在通讯录中也存在的成员更新成员在文件中指定的字段值 </br> 3.文件中存在通讯录中不存在的成员执行添加操作</br>
* 2.文件中存在通讯录中也存在的成员更新成员在文件中指定的字段值 </br>
* 3.文件中存在通讯录中不存在的成员执行添加操作</br>
* 4.通讯录中存在文件中不存在的成员保持不变</br>
* </p>
*
@ -1084,15 +1066,15 @@ public class WeixinProxy {
* 批量更新成员</a>
* @throws WeixinException
*/
public String batchSyncUser(String mediaId, Callback callback)
throws WeixinException {
public String batchSyncUser(String mediaId, Callback callback) throws WeixinException {
return batchApi.syncUser(mediaId, callback);
}
/**
* 批量覆盖成员,本接口以userid为主键全量覆盖企业号通讯录成员任务完成后企业号通讯录成员与提交的文件完全保持一致
* <p>
* 1.模板中的部门需填写部门ID多个部门用分号分隔部门ID必须为数字</br> 2.文件中存在通讯录中也存在的成员完全以文件为准</br>
* 1.模板中的部门需填写部门ID多个部门用分号分隔部门ID必须为数字</br>
* 2.文件中存在通讯录中也存在的成员完全以文件为准</br>
* 3.文件中存在通讯录中不存在的成员执行添加操作</br>
* 4.通讯录中存在文件中不存在的成员执行删除操作出于安全考虑如果需要删除的成员多于50人
* 且多于现有人数的20%以上系统将中止导入并返回相应的错误码
@ -1110,8 +1092,7 @@ public class WeixinProxy {
* 批量覆盖成员</a>
* @throws WeixinException
*/
public String batchReplaceUser(String mediaId, Callback callback)
throws WeixinException {
public String batchReplaceUser(String mediaId, Callback callback) throws WeixinException {
return batchApi.replaceUser(mediaId, callback);
}
@ -1137,7 +1118,8 @@ public class WeixinProxy {
/**
* 批量覆盖部门,本接口以partyid为键全量覆盖企业号通讯录组织架构任务完成后企业号通讯录组织架构与提交的文件完全保持一致
* <p>
* 1.文件中存在通讯录中也存在的部门执行修改操作</br> 2.文件中存在通讯录中不存在的部门执行添加操作</br>
* 1.文件中存在通讯录中也存在的部门执行修改操作</br>
* 2.文件中存在通讯录中不存在的部门执行添加操作</br>
* 3.文件中不存在通讯录中存在的部门当部门为空时执行删除操作</br>
* 4.CSV文件中部门名称部门ID父部门ID为必填字段部门ID必须为数字排序为可选字段置空或填0不修改排序
* </p>
@ -1154,8 +1136,7 @@ public class WeixinProxy {
* 批量覆盖部门</a>
* @throws WeixinException
*/
public String batchReplaceParty(String mediaId, Callback callback)
throws WeixinException {
public String batchReplaceParty(String mediaId, Callback callback) throws WeixinException {
return batchApi.replaceParty(mediaId, callback);
}
@ -1191,8 +1172,7 @@ public class WeixinProxy {
* "http://qydev.weixin.qq.com/wiki/index.php?title=Userid%E4%B8%8Eopenid%E4%BA%92%E6%8D%A2%E6%8E%A5%E5%8F%A3">
* userid转换成openid</a>
*/
public String[] userid2openid(String userid, int agentid)
throws WeixinException {
public String[] userid2openid(String userid, int agentid) throws WeixinException {
return userApi.userid2openid(userid, agentid);
}
@ -1266,8 +1246,7 @@ public class WeixinProxy {
* 修改会话信息</a>
* @throws WeixinException
*/
public JsonResult updateChat(ChatInfo chatInfo, String operator,
List<String> addUsers, List<String> deleteUsers)
public JsonResult updateChat(ChatInfo chatInfo, String operator, List<String> addUsers, List<String> deleteUsers)
throws WeixinException {
return chatApi.updateChat(chatInfo, operator, addUsers, deleteUsers);
}
@ -1286,8 +1265,7 @@ public class WeixinProxy {
* 退出会话</a>
* @throws WeixinException
*/
public JsonResult quitChat(String chatId, String operator)
throws WeixinException {
public JsonResult quitChat(String chatId, String operator) throws WeixinException {
return chatApi.quitChat(chatId, operator);
}
@ -1307,8 +1285,7 @@ public class WeixinProxy {
* 清除会话未读状态</a>
* @throws WeixinException
*/
public JsonResult clearChatNotify(String targetId, String owner,
ChatType chatType) throws WeixinException {
public JsonResult clearChatNotify(String targetId, String owner, ChatType chatType) throws WeixinException {
return chatApi.clearChatNotify(targetId, owner, chatType);
}
@ -1326,8 +1303,7 @@ public class WeixinProxy {
* @return 列表中不存在的成员剩余合法成员会继续执行
* @throws WeixinException
*/
public List<String> setChatMute(List<ChatMute> chatMutes)
throws WeixinException {
public List<String> setChatMute(List<ChatMute> chatMutes) throws WeixinException {
return chatApi.setChatMute(chatMutes);
}
@ -1344,8 +1320,7 @@ public class WeixinProxy {
* 发送消息</a>
* @throws WeixinException
*/
public JsonResult sendChatMessage(ChatMessage message)
throws WeixinException {
public JsonResult sendChatMessage(ChatMessage message) throws WeixinException {
return chatApi.sendChatMessage(message);
}

View File

@ -37,7 +37,7 @@ public class WeixinSuiteProxy {
/**
* 每个套件授权不一样 suiteId - suiteApi
*/
*/
private Map<String, SuiteApi> suiteMap;
/**
* 供应商API:如登陆URL

View File

@ -1,43 +1,43 @@
package com.foxinmy.weixin4j.qy.api;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.token.TokenHolder;
/**
* 辅助API
*
* @className HelperApi
* @author jy
* @date 2014年12月28日
* @since JDK 1.6
* @see
*/
public class HelperApi extends QyApi {
private final TokenHolder tokenHolder;
public HelperApi(TokenHolder tokenHolder) {
this.tokenHolder = tokenHolder;
}
/**
* 获取微信服务器IP地址
*
* @return IP地址
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F#.E8.8E.B7.E5.8F.96.E5.BE.AE.E4.BF.A1.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84ip.E6.AE.B5">获取IP地址</a>
* @throws WeixinException
*/
public List<String> getCallbackip() throws WeixinException {
String getcallbackip_uri = getRequestUri("getcallbackip_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.get(String.format(getcallbackip_uri,
token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("ip_list"),
String.class);
}
}
package com.foxinmy.weixin4j.qy.api;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Token;
import com.foxinmy.weixin4j.token.TokenHolder;
/**
* 辅助API
*
* @className HelperApi
* @author jy
* @date 2014年12月28日
* @since JDK 1.6
* @see
*/
public class HelperApi extends QyApi {
private final TokenHolder tokenHolder;
public HelperApi(TokenHolder tokenHolder) {
this.tokenHolder = tokenHolder;
}
/**
* 获取微信服务器IP地址
*
* @return IP地址
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F#.E8.8E.B7.E5.8F.96.E5.BE.AE.E4.BF.A1.E6.9C.8D.E5.8A.A1.E5.99.A8.E7.9A.84ip.E6.AE.B5">获取IP地址</a>
* @throws WeixinException
*/
public List<String> getWechatServerIp() throws WeixinException {
String getcallbackip_uri = getRequestUri("getcallbackip_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.get(String.format(getcallbackip_uri,
token.getAccessToken()));
return JSON.parseArray(response.getAsJson().getString("ip_list"),
String.class);
}
}

View File

@ -38,34 +38,32 @@ public class MenuApi extends QyApi {
/**
* 自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
*
* @param buttons
* 菜单列表
* @param agentid
* 应用ID
*
* @param buttons
* 菜单列表
* @throws WeixinException
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%8F%9C%E5%8D%95">创建自定义菜单</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%8F%9C%E5%8D%95">
* 创建自定义菜单</a>
* @see com.foxinmy.weixin4j.model.Button
*/
public JsonResult createMenu(List<Button> buttons, int agentid)
throws WeixinException {
public JsonResult createMenu(int agentid, List<Button> buttons) throws WeixinException {
String menu_create_uri = getRequestUri("menu_create_uri");
Token token = tokenHolder.getToken();
JSONObject obj = new JSONObject();
obj.put("button", buttons);
WeixinResponse response = weixinExecutor
.post(String.format(menu_create_uri, token.getAccessToken(),
agentid), JSON.toJSONString(obj, new NameFilter() {
WeixinResponse response = weixinExecutor.post(String.format(menu_create_uri, token.getAccessToken(), agentid),
JSON.toJSONString(obj, new NameFilter() {
@Override
public String process(Object object, String name,
Object value) {
public String process(Object object, String name, Object value) {
if (object instanceof Button && name.equals("content")) {
ButtonType buttonType = ((Button) object).getType();
if (buttonType != null) {
if (ButtonType.view == buttonType) {
return "url";
} else if (ButtonType.media_id == buttonType
|| ButtonType.view_limited == buttonType) {
} else if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
return "media_id";
} else {
return "key";
@ -86,18 +84,17 @@ public class MenuApi extends QyApi {
* 应用ID
* @return 菜单集合
* @throws WeixinException
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E8%8F%9C%E5%8D%95%E5%88%97%E8%A1%A8">查询菜单</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E8%8F%9C%E5%8D%95%E5%88%97%E8%A1%A8">
* 查询菜单</a>
* @see com.foxinmy.weixin4j.model.Button
*/
public List<Button> getMenu(int agentid) throws WeixinException {
String menu_get_uri = getRequestUri("menu_get_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.get(String.format(menu_get_uri,
token.getAccessToken(), agentid));
WeixinResponse response = weixinExecutor.get(String.format(menu_get_uri, token.getAccessToken(), agentid));
JSONArray buttons = response.getAsJson().getJSONObject("menu")
.getJSONArray("button");
JSONArray buttons = response.getAsJson().getJSONObject("menu").getJSONArray("button");
List<Button> buttonList = new ArrayList<Button>(buttons.size());
ParseProcess processor = new ExtraProcessor() {
@Override
@ -106,8 +103,7 @@ public class MenuApi extends QyApi {
}
};
for (int i = 0; i < buttons.size(); i++) {
buttonList.add(JSON.parseObject(buttons.getString(i), Button.class,
processor));
buttonList.add(JSON.parseObject(buttons.getString(i), Button.class, processor));
}
return buttonList;
}
@ -118,15 +114,15 @@ public class MenuApi extends QyApi {
* @param agentid
* 应用ID
* @throws WeixinException
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E8%8F%9C%E5%8D%95">删除菜单</a>
* @see <a href=
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E8%8F%9C%E5%8D%95">
* 删除菜单</a>
* @return 处理结果
*/
public JsonResult deleteMenu(int agentid) throws WeixinException {
String menu_delete_uri = getRequestUri("menu_delete_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.get(String.format(
menu_delete_uri, token.getAccessToken(), agentid));
WeixinResponse response = weixinExecutor.get(String.format(menu_delete_uri, token.getAccessToken(), agentid));
return response.getAsJsonResult();
}

View File

@ -111,7 +111,7 @@ public class NotifyApi extends QyApi {
IdParameter.SEPARATORS)) {
tagIds.add(Integer.parseInt(id));
}
idParameter.setPartyIds(tagIds);
idParameter.setTagIds(tagIds);
}
return idParameter;
}
@ -152,7 +152,7 @@ public class NotifyApi extends QyApi {
*
* @param kfType
* 客服类型 为空时返回全部类型的客服
* @return 第一个元素为内部客服(internal),第二个参数为外部客服(external)
* @return 第一个元素为内部客服(internal),第二个元素为外部客服(external)
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%BC%81%E4%B8%9A%E5%AE%A2%E6%9C%8D%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">客服列表</a>

View File

@ -146,8 +146,7 @@ public class TagApi extends QyApi {
}
/**
* 新增标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)<br>
* <font color="red">若部分userid或partyid非法则在text中体现</font>
* 新增标签成员(标签对管理组可见且未加锁成员属于管理组管辖范围)
*
* @param tagId
* 标签ID
@ -159,7 +158,7 @@ public class TagApi extends QyApi {
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%A0%87%E7%AD%BE#.E5.A2.9E.E5.8A.A0.E6.A0.87.E7.AD.BE.E6.88.90.E5.91.98">
* 新增标签成员说明</a>
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @return 处理结果
* @return 非法的userIds和partyIds
* @throws WeixinException
*/
public IdParameter addTagUsers(int tagId, List<String> userIds,
@ -170,7 +169,6 @@ public class TagApi extends QyApi {
/**
* 删除标签成员(标签对管理组未加锁成员属于管理组管辖范围)<br>
* <font color="red">若部分userid或partyid非法则在text中体现</font>
*
* @param tagId
* 标签ID
@ -182,7 +180,7 @@ public class TagApi extends QyApi {
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%A0%87%E7%AD%BE#.E5.88.A0.E9.99.A4.E6.A0.87.E7.AD.BE.E6.88.90.E5.91.98">
* 删除标签成员说明</a>
* @see com.foxinmy.weixin4j.qy.model.IdParameter
* @return 处理结果
* @return 非法的userIds和partyIds
* @throws WeixinException
*/
public IdParameter deleteTagUsers(int tagId, List<String> userIds,

View File

@ -257,7 +257,7 @@ public class UserApi extends QyApi {
* @return 成员列表
* @throws WeixinException
*/
public List<User> listUser(int departId, boolean fetchChild,
public List<User> listUser(int partyId, boolean fetchChild,
UserStatus userStatus, boolean findDetail) throws WeixinException {
String user_list_uri = findDetail ? getRequestUri("user_list_uri")
: getRequestUri("user_slist_uri");
@ -266,7 +266,7 @@ public class UserApi extends QyApi {
userStatus = UserStatus.UNFOLLOW;
}
WeixinResponse response = weixinExecutor.get(String.format(
user_list_uri, token.getAccessToken(), departId, fetchChild ? 1
user_list_uri, token.getAccessToken(), partyId, fetchChild ? 1
: 0, userStatus.getVal()));
List<User> list = null;
if (findDetail) {
@ -293,14 +293,14 @@ public class UserApi extends QyApi {
/**
* 获取部门下所有状态成员(不进行递归)
*
* @param departId
* @param partyId
* 部门ID
* @see {@link #listUser(int, boolean,UserStatus)}
* @return 成员列表
* @throws WeixinException
*/
public List<User> listUser(int departId) throws WeixinException {
return listUser(departId, false, UserStatus.BOTH, false);
public List<User> listUser(int partyId) throws WeixinException {
return listUser(partyId, false, UserStatus.BOTH, false);
}
/**

View File

@ -1,35 +1,35 @@
package com.foxinmy.weixin4j.qy.test;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.qy.api.HelperApi;
/**
* 辅助API测试
*
* @className HelperTest
* @author jy
* @date 2014年12月28日
* @since JDK 1.6
* @see
*/
public class HelperTest extends TokenTest {
public HelperApi helperApi;
@Before
public void init() {
this.helperApi = new HelperApi(tokenHolder);
}
@Test
public void backip() throws WeixinException {
List<String> ips = helperApi.getCallbackip();
Assert.assertTrue(ips != null && !ips.isEmpty());
System.out.println(ips);
}
}
package com.foxinmy.weixin4j.qy.test;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import com.foxinmy.weixin4j.exception.WeixinException;
import com.foxinmy.weixin4j.qy.api.HelperApi;
/**
* 辅助API测试
*
* @className HelperTest
* @author jy
* @date 2014年12月28日
* @since JDK 1.6
* @see
*/
public class HelperTest extends TokenTest {
public HelperApi helperApi;
@Before
public void init() {
this.helperApi = new HelperApi(tokenHolder);
}
@Test
public void backip() throws WeixinException {
List<String> ips = helperApi.getWechatServerIp();
Assert.assertTrue(ips != null && !ips.isEmpty());
System.out.println(ips);
}
}

View File

@ -42,7 +42,7 @@ public class MenuTest extends TokenTest {
btnList.add(b);
b = new Button("photo", "photo", ButtonType.pic_photo_or_album);
btnList.add(b);
JsonResult result = menuApi.createMenu(btnList, 1);
JsonResult result = menuApi.createMenu(1, btnList);
Assert.assertEquals(0, result.getCode());
}