From 464359ae7ac788ac3967f58323420b2f2fb08f86 Mon Sep 17 00:00:00 2001 From: jinyu Date: Sun, 29 Mar 2015 22:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=A3=E9=87=91=E5=88=B8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3&=E5=AD=97=E6=AE=B5=E4=B8=8A=E7=9A=84?= =?UTF-8?q?=E5=8D=95=E8=A1=8C=E6=B3=A8=E9=87=8A=E8=B0=83=E6=95=B4=E4=B8=BA?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=A4=9A=E8=A1=8C=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGE.md | 9 + README.md | 6 +- weixin4j-base/README.md | 6 +- .../foxinmy/weixin4j/http/HttpRequest.java | 3 +- .../com/foxinmy/weixin4j/model/BaseMsg.java | 32 +- .../com/foxinmy/weixin4j/model/Button.java | 30 +- .../com/foxinmy/weixin4j/model/Consts.java | 25 +- .../com/foxinmy/weixin4j/model/Gender.java | 13 +- .../com/foxinmy/weixin4j/model/Token.java | 9 + .../foxinmy/weixin4j/model/WeixinAccount.java | 17 +- .../weixin4j/model/WeixinMpAccount.java | 66 +++- .../weixin4j/model/WeixinQyAccount.java | 7 + .../foxinmy/weixin4j/msg/ImageMessage.java | 10 +- .../com/foxinmy/weixin4j/msg/LinkMessage.java | 17 +- .../foxinmy/weixin4j/msg/LocationMessage.java | 24 +- .../java/com/foxinmy/weixin4j/msg/README.md | 11 +- .../com/foxinmy/weixin4j/msg/TextMessage.java | 81 ++-- .../foxinmy/weixin4j/msg/VideoMessage.java | 10 +- .../foxinmy/weixin4j/msg/VoiceMessage.java | 16 +- .../msg/event/EnterAgentEventMessage.java | 11 +- .../weixin4j/msg/event/EventMessage.java | 5 + .../msg/event/KfCloseEventMessage.java | 9 +- .../msg/event/KfCreateEventMessage.java | 11 +- .../msg/event/KfSwitchEventMessage.java | 20 +- .../msg/event/LocationEventMessage.java | 16 +- .../weixin4j/msg/event/MassEventMessage.java | 32 +- .../com/foxinmy/weixin4j/msg/event/README.md | 11 +- .../weixin4j/msg/event/ScanEventMessage.java | 14 +- .../event/TemplatesendjobfinishMessage.java | 5 +- .../msg/event/menu/MenuEventMessage.java | 5 +- .../event/menu/MenuLocationEventMessage.java | 38 +- .../msg/event/menu/MenuPhotoEventMessage.java | 30 ++ .../msg/event/menu/MenuScanEventMessage.java | 21 +- .../foxinmy/weixin4j/msg/event/menu/README.md | 4 +- .../foxinmy/weixin4j/msg/model/Article.java | 24 +- .../com/foxinmy/weixin4j/msg/model/Base.java | 3 + .../com/foxinmy/weixin4j/msg/model/File.java | 3 + .../com/foxinmy/weixin4j/msg/model/Image.java | 3 + .../foxinmy/weixin4j/msg/model/MpArticle.java | 35 +- .../foxinmy/weixin4j/msg/model/MpNews.java | 6 + .../foxinmy/weixin4j/msg/model/MpVideo.java | 3 + .../com/foxinmy/weixin4j/msg/model/Music.java | 15 + .../com/foxinmy/weixin4j/msg/model/News.java | 5 + .../com/foxinmy/weixin4j/msg/model/README.md | 10 +- .../com/foxinmy/weixin4j/msg/model/Text.java | 3 + .../com/foxinmy/weixin4j/msg/model/Trans.java | 4 +- .../com/foxinmy/weixin4j/msg/model/Video.java | 14 + .../weixin4j/response/HttpWeixinMessage.java | 59 ++- .../weixin4j/response/ResponseMessage.java | 10 +- .../foxinmy/weixin4j/type/EncryptType.java | 10 +- .../com/foxinmy/weixin4j/type/EventType.java | 123 +++++- .../foxinmy/weixin4j/type/MessageType.java | 46 ++- .../java/com/foxinmy/weixin4j/type/README.md | 1 - .../com/foxinmy/weixin4j/util/ClassUtil.java | 20 + .../com/foxinmy/weixin4j/util/DateUtil.java | 40 ++ .../com/foxinmy/weixin4j/util/MapUtil.java | 15 + .../com/foxinmy/weixin4j/util/RandomUtil.java | 41 +- .../foxinmy/weixin4j/util/ReflectionUtil.java | 15 +- .../weixin4j/xml/Map2ObjectConverter.java | 9 + weixin4j-mp/README.md | 10 +- weixin4j-mp/weixin4j-mp-api/README.md | 10 +- .../foxinmy/weixin4j/mp/WeixinPayProxy.java | 82 +++- .../com/foxinmy/weixin4j/mp/WeixinProxy.java | 2 +- .../foxinmy/weixin4j/mp/api/CouponApi.java | 169 ++++++++ .../foxinmy/weixin4j/mp/api/NotifyApi.java | 4 +- .../com/foxinmy/weixin4j/mp/api/Pay3Api.java | 2 +- .../com/foxinmy/weixin4j/mp/api/README.md | 30 +- .../foxinmy/weixin4j/mp/api/weixin.properties | 11 +- .../mp/datacube/ArticleDatacube1.java | 49 ++- .../mp/datacube/ArticleDatacube2.java | 16 +- .../mp/datacube/ArticleDatacubeShare.java | 31 +- .../weixin4j/mp/datacube/ArticleSummary.java | 21 +- .../weixin4j/mp/datacube/ArticleTotal.java | 18 +- .../mp/datacube/InterfaceSummary.java | 30 +- .../weixin4j/mp/datacube/UpstreamMsg.java | 26 +- .../weixin4j/mp/datacube/UpstreamMsgDist.java | 15 +- .../weixin4j/mp/datacube/UserSummary.java | 26 +- .../weixin4j/mp/message/NotifyMessage.java | 10 +- .../com/foxinmy/weixin4j/mp/message/README.md | 6 +- .../weixin4j/mp/message/TemplateMessage.java | 32 +- .../weixin4j/mp/model/CustomRecord.java | 26 +- .../foxinmy/weixin4j/mp/model/Following.java | 18 + .../com/foxinmy/weixin4j/mp/model/Group.java | 9 + .../foxinmy/weixin4j/mp/model/KfAccount.java | 34 +- .../foxinmy/weixin4j/mp/model/KfSession.java | 15 +- .../weixin4j/mp/model/MediaCounter.java | 20 +- .../foxinmy/weixin4j/mp/model/MediaItem.java | 20 +- .../weixin4j/mp/model/MediaRecord.java | 20 +- .../foxinmy/weixin4j/mp/model/OauthToken.java | 6 + .../weixin4j/mp/model/QRParameter.java | 15 +- .../foxinmy/weixin4j/mp/model/SemQuery.java | 58 ++- .../foxinmy/weixin4j/mp/model/SemResult.java | 24 +- .../com/foxinmy/weixin4j/mp/model/User.java | 60 ++- .../weixin4j/mp/payment/JsPayNotify.java | 17 +- .../weixin4j/mp/payment/MicroPayPackage.java | 33 +- .../weixin4j/mp/payment/PayBaseInfo.java | 41 +- .../weixin4j/mp/payment/PayPackage.java | 84 +++- .../weixin4j/mp/payment/PayRequest.java | 4 +- .../com/foxinmy/weixin4j/mp/payment/README.md | 51 ++- .../mp/payment/coupon/CouponDetail.java | 371 ++++++++++++++++++ .../mp/payment/coupon/CouponInfo.java | 16 +- .../mp/payment/coupon/CouponResult.java | 117 ++++++ .../mp/payment/coupon/CouponStock.java | 296 ++++++++++++++ .../weixin4j/mp/payment/v2/ApiResult.java | 31 +- .../mp/payment/v2/NativePayNotifyV2.java | 4 + .../mp/payment/v2/NativePayResponseV2.java | 6 + .../foxinmy/weixin4j/mp/payment/v2/Order.java | 80 ++-- .../weixin4j/mp/payment/v2/PayFeedback.java | 27 +- .../weixin4j/mp/payment/v2/PayPackageV2.java | 42 +- .../weixin4j/mp/payment/v2/PayWarn.java | 12 +- .../weixin4j/mp/payment/v2/RefundDetail.java | 41 +- .../weixin4j/mp/payment/v2/RefundRecord.java | 20 +- .../weixin4j/mp/payment/v2/RefundResult.java | 10 +- .../weixin4j/mp/payment/v3/ApiResult.java | 38 +- .../mp/payment/v3/NativePayNotifyV3.java | 3 + .../foxinmy/weixin4j/mp/payment/v3/Order.java | 71 +++- .../weixin4j/mp/payment/v3/PayPackageV3.java | 40 +- .../weixin4j/mp/payment/v3/PayRequestV3.java | 1 + .../weixin4j/mp/payment/v3/PrePay.java | 8 +- .../weixin4j/mp/payment/v3/RefundDetail.java | 84 +++- .../weixin4j/mp/payment/v3/RefundRecord.java | 54 ++- .../weixin4j/mp/payment/v3/RefundResult.java | 10 +- .../foxinmy/weixin4j/mp/type/BillType.java | 14 +- .../weixin4j/mp/type/CouponStatus.java | 34 ++ .../weixin4j/mp/type/CouponStockStatus.java | 42 ++ .../weixin4j/mp/type/CouponStockType.java | 30 ++ .../foxinmy/weixin4j/mp/type/CouponType.java | 34 ++ .../mp/type/DatacuteCountIntervalType.java | 29 ++ .../foxinmy/weixin4j/mp/type/FaceSize.java | 18 +- .../com/foxinmy/weixin4j/mp/type/IdQuery.java | 9 +- .../com/foxinmy/weixin4j/mp/type/IdType.java | 20 +- .../com/foxinmy/weixin4j/mp/type/QRType.java | 11 +- .../weixin4j/mp/type/RefundChannel.java | 21 +- .../weixin4j/mp/type/RefundStatus.java | 27 +- .../foxinmy/weixin4j/mp/type/RefundType.java | 18 +- .../foxinmy/weixin4j/mp/type/SemCategory.java | 24 +- .../weixin4j/mp/type/ShareSourceType.java | 20 +- .../foxinmy/weixin4j/mp/type/TradeState.java | 40 +- .../foxinmy/weixin4j/mp/type/TradeType.java | 17 +- .../foxinmy/weixin4j/mp/test/CouponTest.java | 64 +++ weixin4j-mp/weixin4j-mp-server/README.md | 2 +- weixin4j-qy/README.md | 4 + weixin4j-qy/weixin4j-qy-api/README.md | 6 + .../foxinmy/weixin4j/qy/api/NotifyApi.java | 5 + .../weixin4j/qy/message/NotifyMessage.java | 30 +- .../foxinmy/weixin4j/qy/model/AgentInfo.java | 30 +- .../weixin4j/qy/model/AgentSetter.java | 40 +- .../foxinmy/weixin4j/qy/model/Department.java | 20 +- .../foxinmy/weixin4j/qy/model/NameValue.java | 8 + .../com/foxinmy/weixin4j/qy/model/Tag.java | 6 + .../com/foxinmy/weixin4j/qy/model/User.java | 65 ++- .../foxinmy/weixin4j/qy/type/InviteType.java | 10 +- .../weixin4j/qy/type/ReportLocationType.java | 16 +- .../foxinmy/weixin4j/qy/type/UserStatus.java | 20 +- weixin4j-qy/weixin4j-qy-server/README.md | 4 +- 155 files changed, 3825 insertions(+), 591 deletions(-) delete mode 100644 weixin4j-base/src/main/java/com/foxinmy/weixin4j/type/README.md create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/api/CouponApi.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/coupon/CouponDetail.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/coupon/CouponResult.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/coupon/CouponStock.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CouponStatus.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CouponStockStatus.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CouponStockType.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/CouponType.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/type/DatacuteCountIntervalType.java create mode 100644 weixin4j-mp/weixin4j-mp-api/src/test/java/com/foxinmy/weixin4j/mp/test/CouponTest.java diff --git a/CHANGE.md b/CHANGE.md index e1a323a5..389965d0 100644 --- a/CHANGE.md +++ b/CHANGE.md @@ -204,4 +204,13 @@ + **weixin4j-qy**: 新增deploy.xml远程部署ant脚本 +* 2015-03-29 + + + **weixin4j-base**: 单行注释调整为多行文档注释 + + + **weixin4j-mp**: 单行注释调整为多行文档注释 + + + **weixin4j-mp**: 新增(CouponApi)[./weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/api/CouponApi.java]代金券接口 + + + **weixin4j-qy**: 单行注释调整为多行文档注释 \ No newline at end of file diff --git a/README.md b/README.md index 5ffa01f1..b2f73d61 100644 --- a/README.md +++ b/README.md @@ -71,12 +71,16 @@ netty的代码没有放到maven中心仓库,也没什么意义,因为最终需 接下来 ------ -* 代金券 & 红包接口 +* 企业号异步接口 + +* 红包和企业付款接口 * 公众号服务应用 * 企业号第三方应用 +* 企业号登陆授权 + * 微信小店 * 微信卡券 \ No newline at end of file diff --git a/weixin4j-base/README.md b/weixin4j-base/README.md index ac8d0013..176fbc37 100644 --- a/weixin4j-base/README.md +++ b/weixin4j-base/README.md @@ -47,4 +47,8 @@ weixin4j-base + 重构token实现机制 - + 新增JSTICKET支持 \ No newline at end of file + + 新增JSTICKET支持 + +* 2015-03-29 + + + 单行注释调整为多行文档注释 \ No newline at end of file diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java index 92f8f78e..9a8f3cfb 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java @@ -196,10 +196,11 @@ public class HttpRequest { EntityUtils.consume(httpEntity); Header contentType = httpResponse .getFirstHeader(HttpHeaders.CONTENT_TYPE); + System.err.println(response.getAsString()); // error with html if (contentType.getValue().contains( ContentType.TEXT_HTML.getMimeType())) { - response.setText(new String(data, "gbk")); + // response.setText(new String(data, "gbk")); try { checkJson(response); return response; diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/BaseMsg.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/BaseMsg.java index 94f95021..805d9312 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/BaseMsg.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/model/BaseMsg.java @@ -16,18 +16,38 @@ public class BaseMsg implements Serializable { private static final long serialVersionUID = 7761192742840031607L; + /** + * 开发者微信号 + */ @XStreamAlias("ToUserName") - private String toUserName; // 开发者微信号 + private String toUserName; + /** + * 发送方账号 即用户的openid + */ @XStreamAlias("FromUserName") - private String fromUserName; // 发送方帐号(一个OpenID) + private String fromUserName; + /** + * 消息创建时间 系统毫秒数 + */ @XStreamAlias("CreateTime") - private long createTime = System.currentTimeMillis(); // 消息创建时间 (整型) + private long createTime = System.currentTimeMillis(); + /** + * 消息类型 + * + * @see com.foxinmy.weixin4j.type.MessageType + */ @XStreamAlias("MsgType") - private String msgType; // 消息类型 + private String msgType; + /** + * 消息ID 可用于排重 + */ @XStreamAlias("MsgId") - private long msgId; // 消息ID + private long msgId; @XStreamAlias("AgentID") - private String agentId; // 企业号独有的应用ID + /** + * 企业号独有的应用ID + */ + private String agentId; public BaseMsg() { 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 a4406b1c..7c65787d 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 @@ -24,17 +24,39 @@ public class Button implements Serializable { private static final long serialVersionUID = -6422234732203854866L; + /** + * 菜单标题,不超过16个字节,子菜单不超过40个字节 + */ private String name; - private ButtonType type; // 菜单的响应动作类型 - private String key; // click等点击类型必须 - private String url; // view类型必须 - + /** + * 菜单的响应动作类型 + * + * @see com.foxinmy.weixin4j.type.ButtonType + */ + private ButtonType type; + /** + * 菜单KEY值,用于消息接口推送,不超过128字节 + */ + private String key; + /** + * view类型必须 网页链接,用户点击菜单可打开链接,不超过256字节 + */ + private String url; + /** + * 二级菜单数组,个数应为1~5个 + */ @JSONField(name = "sub_button") private List