From 8995196b8d2fa2198309cd8bd51c2ceedf36c8ee Mon Sep 17 00:00:00 2001 From: jinyu Date: Thu, 16 Apr 2015 11:30:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=EF=BC=9A=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=8F=82=E6=95=B0=E7=B1=BB?= =?UTF-8?q?=20&=20=E6=96=B0=E5=A2=9E=E8=87=AA=E5=AE=9A=E4=B9=89=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E9=85=8D=E7=BD=AE=E3=80=81=E8=87=AA=E5=8A=A8=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E9=85=8D=E7=BD=AE=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE.md | 7 +- .../com/foxinmy/weixin4j/model/Button.java | 83 +++--- .../com/foxinmy/weixin4j/model/Consts.java | 4 +- .../foxinmy/weixin4j/msg/model/MpArticle.java | 52 +++- weixin4j-mp/README.md | 12 +- weixin4j-mp/weixin4j-mp-api/README.md | 12 +- .../com/foxinmy/weixin4j/mp/WeixinProxy.java | 52 ++-- .../foxinmy/weixin4j/mp/api/CustomApi.java | 2 +- .../foxinmy/weixin4j/mp/api/HelperApi.java | 141 ++++++++++ .../com/foxinmy/weixin4j/mp/api/MenuApi.java | 34 ++- .../com/foxinmy/weixin4j/mp/api/OauthApi.java | 2 +- .../com/foxinmy/weixin4j/mp/api/QrApi.java | 36 +-- .../foxinmy/weixin4j/mp/api/weixin.properties | 4 + .../weixin4j/mp/model/AutoReplySetting.java | 260 ++++++++++++++++++ .../weixin4j/mp/model/MenuSetting.java | 48 ++++ .../weixin4j/mp/model/QRParameter.java | 111 ++++---- .../foxinmy/weixin4j/mp/payment/PayUtil.java | 4 +- .../mp/token/WeixinJSTicketCreator.java | 5 +- .../weixin4j/mp/type/AutomatchMode.java | 21 ++ .../weixin4j/mp/type/AutoreplyMode.java | 21 ++ .../com/foxinmy/weixin4j/mp/type/QRType.java | 19 +- .../src/main/resources/weixin.properties | 4 +- .../foxinmy/weixin4j/mp/test/HelpTest.java | 10 + .../foxinmy/weixin4j/mp/test/MediaTest.java | 32 +-- .../foxinmy/weixin4j/mp/test/MenuTest.java | 20 +- .../com/foxinmy/weixin4j/mp/test/QRTest.java | 14 +- weixin4j-mp/weixin4j-mp-server/README.md | 2 +- .../src/main/resources/weixin.properties | 4 +- .../com/foxinmy/weixin4j/qy/api/MenuApi.java | 31 ++- 29 files changed, 817 insertions(+), 230 deletions(-) create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/model/AutoReplySetting.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/model/MenuSetting.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/AutomatchMode.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/AutoreplyMode.java diff --git a/CHANGE.md b/CHANGE.md index dd8dd5ad..7cd804a5 100644 --- a/CHANGE.md +++ b/CHANGE.md @@ -241,4 +241,9 @@ + **weixin4j-mp**: 新增用户分组批量移动、删除组别接口 + **weixin4j-qy**: 新增WeixinTokenCreator与WeixinJSTicketCreator类 - \ No newline at end of file + +* 2015-04-16 + + + **weixin4j-mp**: 调整[二维码参数](./weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/model/QRParameter.java)类 + + + **weixin4j-mp**: 新增获取[自定义菜单配置、自动回复配置](./weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/api/HelperApi.java)接口 \ No newline at end of file diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Button.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Button.java index 7c65787d..e6604270 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Button.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/Button.java @@ -29,19 +29,25 @@ public class Button implements Serializable { */ private String name; /** - * 菜单的响应动作类型 + * 菜单类型
+ * 公众平台官网上能够设置的菜单类型有view、text、img、photo、video、voice * * @see com.foxinmy.weixin4j.type.ButtonType */ - private ButtonType type; + private String type; /** - * 菜单KEY值,用于消息接口推送,不超过128字节 + * 菜单KEY值,根据type的类型而定,用于消息接口推送,不超过128字节. + *

+ * 官网上设置的自定义菜单:
Text:保存文字到value; Img、voice:保存mediaID到value; + * Video:保存视频下载链接到value;
News:保存图文消息到news_info; View:保存链接到url。
+ *

+ * 使用API设置的自定义菜单:
+ * click、scancode_push、scancode_waitmsg、pic_sysphoto、pic_photo_or_album + * 、
pic_weixin、location_select:保存值到key;view:保存链接到url + *

+ *

*/ - private String key; - /** - * view类型必须 网页链接,用户点击菜单可打开链接,不超过256字节 - */ - private String url; + private Serializable content; /** * 二级菜单数组,个数应为1~5个 */ @@ -53,18 +59,18 @@ public class Button implements Serializable { /** * 创建一个菜单 - * @param name 菜单显示的名称 - * @param value 当buttonType为view时value设置为url,否则为key. - * @param buttonType 按钮类型 + * + * @param name + * 菜单显示的名称 + * @param content + * 当buttonType为view时content设置为url,否则为key. + * @param buttonType + * 按钮类型 */ - public Button(String name, String value, ButtonType buttonType) { + public Button(String name, String content, ButtonType buttonType) { this.name = name; - this.type = buttonType; - if (buttonType == ButtonType.view) { - this.url = value; - } else { - this.key = value; - } + this.content = content; + this.type = buttonType.name(); } public String getName() { @@ -75,28 +81,25 @@ public class Button implements Serializable { this.name = name; } - public ButtonType getType() { + public String getType() { return type; } - public void setType(ButtonType type) { + @JSONField(serialize = false, deserialize = false) + public ButtonType getFormatType() { + return ButtonType.valueOf(type); + } + + public void setType(String type) { this.type = type; } - public String getKey() { - return key; + public Serializable getContent() { + return content; } - public void setKey(String key) { - this.key = key; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; + public void setContent(Serializable content) { + this.content = content; } public List