From ded106cc3babb58982113b718824f2131da2b3e0 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 2 Dec 2019 08:42:56 +0800 Subject: [PATCH] =?UTF-8?q?[dev][=E4=BF=AE=E6=94=B9]:=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Conflicts: # pom.xml # spring-boot-starters/pom.xml # spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml # spring-boot-starters/wx-java-mp-spring-boot-starter/pom.xml # spring-boot-starters/wx-java-open-spring-boot-starter/pom.xml # spring-boot-starters/wx-java-pay-spring-boot-starter/pom.xml # weixin-java-common/pom.xml # weixin-java-cp/pom.xml # weixin-java-miniapp/pom.xml # weixin-java-mp/pom.xml # weixin-java-open/pom.xml # weixin-java-pay/pom.xml # weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/BaseWxPayRequest.java # weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayOrderQueryResult.java --- README.md | 2 +- pom.xml | 2 +- spring-boot-starters/pom.xml | 2 +- .../pom.xml | 2 +- .../wx-java-mp-spring-boot-starter/pom.xml | 2 +- .../wx-java-open-spring-boot-starter/pom.xml | 2 +- .../wx-java-pay-spring-boot-starter/pom.xml | 2 +- weixin-graal/pom.xml | 2 +- weixin-java-common/pom.xml | 2 +- weixin-java-cp/pom.xml | 2 +- weixin-java-miniapp/pom.xml | 2 +- weixin-java-mp/pom.xml | 2 +- .../weixin/mp/api/WxMpCardService.java | 18 ++++++++ .../mp/api/impl/WxMpCardServiceImpl.java | 20 ++++++++- .../mp/bean/card/WxMpCardBatchGetResult.java | 45 +++++++++++++++++++ .../mp/bean/message/WxMpXmlMessage.java | 6 +++ .../chanjar/weixin/mp/enums/WxMpApiUrl.java | 8 ++++ weixin-java-open/pom.xml | 2 +- .../weixin/open/bean/WxOpenCreateResult.java | 11 ++--- .../weixin/open/bean/ma/WxOpenAuthorizer.java | 27 +++++++++++ weixin-java-pay/pom.xml | 2 +- .../bean/request/WxPayOrderCloseRequest.java | 13 ++++++ .../bean/result/WxPayMicropayResult.java | 28 +++++++++++- 23 files changed, 180 insertions(+), 24 deletions(-) create mode 100644 weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardBatchGetResult.java create mode 100644 weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenAuthorizer.java diff --git a/README.md b/README.md index def36134..7db87b1b 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ com.github.binarywang (不同模块参考下文) - 3.8.0 + 3.8.0.A ``` diff --git a/pom.xml b/pom.xml index b24ce0b7..864c30a7 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 com.github.binarywang wx-java - 3.8.0 + 3.8.0.A pom WxJava - Weixin/Wechat Java SDK 微信开发Java SDK diff --git a/spring-boot-starters/pom.xml b/spring-boot-starters/pom.xml index 264c91d6..ac0e0685 100644 --- a/spring-boot-starters/pom.xml +++ b/spring-boot-starters/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A pom wx-java-spring-boot-starters diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml index f710eb13..e4f10db9 100644 --- a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ wx-java-spring-boot-starters com.github.binarywang - 3.8.0 + 3.8.0.A 4.0.0 diff --git a/spring-boot-starters/wx-java-mp-spring-boot-starter/pom.xml b/spring-boot-starters/wx-java-mp-spring-boot-starter/pom.xml index e8d0e148..5b78b45a 100644 --- a/spring-boot-starters/wx-java-mp-spring-boot-starter/pom.xml +++ b/spring-boot-starters/wx-java-mp-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ wx-java-spring-boot-starters com.github.binarywang - 3.8.0 + 3.8.0.A 4.0.0 diff --git a/spring-boot-starters/wx-java-open-spring-boot-starter/pom.xml b/spring-boot-starters/wx-java-open-spring-boot-starter/pom.xml index 265cef1e..e9ef860c 100644 --- a/spring-boot-starters/wx-java-open-spring-boot-starter/pom.xml +++ b/spring-boot-starters/wx-java-open-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ wx-java-spring-boot-starters com.github.binarywang - 3.8.0 + 3.8.0.A 4.0.0 diff --git a/spring-boot-starters/wx-java-pay-spring-boot-starter/pom.xml b/spring-boot-starters/wx-java-pay-spring-boot-starter/pom.xml index f49b20bb..f3c9515b 100644 --- a/spring-boot-starters/wx-java-pay-spring-boot-starter/pom.xml +++ b/spring-boot-starters/wx-java-pay-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ wx-java-spring-boot-starters com.github.binarywang - 3.8.0 + 3.8.0.A 4.0.0 diff --git a/weixin-graal/pom.xml b/weixin-graal/pom.xml index 104e4ffb..6b0fe4dd 100644 --- a/weixin-graal/pom.xml +++ b/weixin-graal/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-graal diff --git a/weixin-java-common/pom.xml b/weixin-java-common/pom.xml index 4d05d5c3..bfe6feeb 100644 --- a/weixin-java-common/pom.xml +++ b/weixin-java-common/pom.xml @@ -6,7 +6,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-java-common diff --git a/weixin-java-cp/pom.xml b/weixin-java-cp/pom.xml index cbd9be4d..cf8b4afe 100644 --- a/weixin-java-cp/pom.xml +++ b/weixin-java-cp/pom.xml @@ -7,7 +7,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-java-cp diff --git a/weixin-java-miniapp/pom.xml b/weixin-java-miniapp/pom.xml index 8efd3e54..ac145a6c 100644 --- a/weixin-java-miniapp/pom.xml +++ b/weixin-java-miniapp/pom.xml @@ -7,7 +7,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-java-miniapp diff --git a/weixin-java-mp/pom.xml b/weixin-java-mp/pom.xml index a113e0bf..0d1e8098 100644 --- a/weixin-java-mp/pom.xml +++ b/weixin-java-mp/pom.xml @@ -7,7 +7,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-java-mp diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java index f0bd0b8f..9b8ec17c 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java @@ -124,6 +124,24 @@ public interface WxMpCardService { */ String getCardDetail(String cardId) throws WxErrorException; + /** + * 批量查询卡券列表 + * 详见 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272 + * + * @param offset 查询卡列表的起始偏移量,从0开始,即offset: 5是指从从列表里的第六个开始读取。 + * @param count 需要查询的卡片的数量(数量最大50) + * @param statusList 支持开发者拉出指定状态的卡券列表 + * “CARD_STATUS_NOT_VERIFY”, 待审核 ; + * “CARD_STATUS_VERIFY_FAIL”, 审核失败; + * “CARD_STATUS_VERIFY_OK”, 通过审核; + * “CARD_STATUS_DELETE”, 卡券被商户删除; + * “CARD_STATUS_DISPATCH”, 在公众平台投放过的卡券; + * @return 返回的卡券详情JSON字符串 + *
[注] 由于返回的JSON格式过于复杂,难以定义其对应格式的Bean并且难以维护,因此只返回String格式的JSON串。 + *
可由 com.google.gson.JsonParser#parse 等方法直接取JSON串中的某个字段。 + */ + WxMpCardBatchGetResult getCardBatchGet(Integer offset, Integer count, List statusList) throws WxErrorException; + /** * 添加测试白名单. * diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java index faba08ac..ac4bf6fe 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java @@ -108,7 +108,9 @@ public class WxMpCardServiceImpl implements WxMpCardService { @Override public WxMpCardResult queryCardCode(String cardId, String code, boolean checkConsume) throws WxErrorException { JsonObject param = new JsonObject(); - param.addProperty("card_id", cardId); + if (StringUtils.isNotBlank(cardId)) { + param.addProperty("card_id", cardId); + } param.addProperty("code", code); param.addProperty("check_consume", checkConsume); String responseContent = this.wxMpService.post(WxMpApiUrl.Card.CARD_CODE_GET, param.toString()); @@ -171,6 +173,22 @@ public class WxMpCardServiceImpl implements WxMpCardService { return responseContent; } + @Override + public WxMpCardBatchGetResult getCardBatchGet(Integer offset, Integer count, List statusList) throws WxErrorException { + JsonObject param = new JsonObject(); + param.addProperty("offset", offset); + param.addProperty("count", count); + if(statusList.size() > 0) { + JsonArray statusArray = new JsonArray(); + for(String item: statusList) { + statusArray.add(item); + } + param.add("status_list", statusArray); + } + String responseContent = this.wxMpService.post(WxMpApiUrl.Card.CARD_BATCHGET, param.toString()); + return WxMpCardBatchGetResult.fromJson(responseContent); + } + @Override public String addTestWhiteList(String openid) throws WxErrorException { JsonArray array = new JsonArray(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardBatchGetResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardBatchGetResult.java new file mode 100644 index 00000000..e3ac4011 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardBatchGetResult.java @@ -0,0 +1,45 @@ +package me.chanjar.weixin.mp.bean.card; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +import java.io.Serializable; +import java.util.List; + +/** + * + * 批量查询卡券列表 + * @author Stormeye + * @version 19/06/04 + */ +@Data +public class WxMpCardBatchGetResult implements Serializable { + private static final long serialVersionUID = -7950878428289035637L; + + public static WxMpCardBatchGetResult fromJson(String json) { + return WxMpGsonBuilder.create().fromJson(json, WxMpCardBatchGetResult.class); + } + + private String errorCode; + + private String errorMsg; + + /** + * 卡券ID列表 + */ + @SerializedName("card_id_list") + private List cardList; + + /** + * 该商户名下卡券ID总数 + */ + @SerializedName("total_num") + private Integer totalNum; + + @Override + public String toString() { + return WxMpGsonBuilder.create().toJson(this); + } + +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java index f6b54a20..5c3356e0 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/message/WxMpXmlMessage.java @@ -576,6 +576,12 @@ public class WxMpXmlMessage implements Serializable { @XStreamAlias("Reason") private String reason; + /** + * 审核失败的小程序截图示例. + */ + @XStreamAlias("ScreenShot") + private String screenShot; + /////////////////////////////////////// // 扫一扫事件推送 /////////////////////////////////////// diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java index 9bc0e1de..c62c6c92 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java @@ -516,6 +516,10 @@ public interface WxMpApiUrl { * get. */ CARD_GET(API_DEFAULT_HOST_URL, "/card/get"), + /** + * batch get + */ + CARD_BATCHGET(API_DEFAULT_HOST_URL, "/card/batchget"), /** * wx_card. */ @@ -528,6 +532,10 @@ public interface WxMpApiUrl { * get. */ CARD_CODE_GET(API_DEFAULT_HOST_URL, "/card/code/get"), + /** + * get card list + */ + CARD_USER_GETCARDLIST(API_DEFAULT_HOST_URL, "/card/user/getcardlist"), /** * consume. */ diff --git a/weixin-java-open/pom.xml b/weixin-java-open/pom.xml index b03d8b33..d99bc7d2 100644 --- a/weixin-java-open/pom.xml +++ b/weixin-java-open/pom.xml @@ -7,7 +7,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A weixin-java-open diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenCreateResult.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenCreateResult.java index 6e06a16d..85f67de0 100644 --- a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenCreateResult.java +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/WxOpenCreateResult.java @@ -5,6 +5,7 @@ import com.google.gson.annotations.SerializedName; import lombok.Data; import lombok.EqualsAndHashCode; import me.chanjar.weixin.common.util.json.WxGsonBuilder; +import me.chanjar.weixin.open.bean.result.WxOpenResult; import java.io.Serializable; @@ -17,18 +18,12 @@ import java.io.Serializable; * @author Binary Wang */ @Data -@EqualsAndHashCode(callSuper = false) -public class WxOpenCreateResult implements Serializable { +@EqualsAndHashCode(callSuper = true) +public class WxOpenCreateResult extends WxOpenResult { @SerializedName("open_appid") private String openAppid; - @SerializedName("errcode") - private String errcode; - - @SerializedName("errmsg") - private String errmsg; - public static WxOpenCreateResult fromJson(String json) { return WxGsonBuilder.create().fromJson(json, WxOpenCreateResult.class); } diff --git a/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenAuthorizer.java b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenAuthorizer.java new file mode 100644 index 00000000..7f98c100 --- /dev/null +++ b/weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenAuthorizer.java @@ -0,0 +1,27 @@ +package me.chanjar.weixin.open.bean.ma; + +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NonNull; + +import java.io.Serializable; + +/** + * 微信开放平台小程序成员对象 + * + * @author Stormeye + * @date 2019/04/26 + */ +@Data +public class WxOpenAuthorizer implements Serializable { + + @NonNull + @SerializedName("authorizer_appid") + private String authorizerAppid; + + @SerializedName("refresh_token") + private String refreshToken; + + @SerializedName("auth_time") + private Long authTime; +} diff --git a/weixin-java-pay/pom.xml b/weixin-java-pay/pom.xml index ba61c037..a5087080 100644 --- a/weixin-java-pay/pom.xml +++ b/weixin-java-pay/pom.xml @@ -5,7 +5,7 @@ com.github.binarywang wx-java - 3.8.0 + 3.8.0.A 4.0.0 diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayOrderCloseRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayOrderCloseRequest.java index 3758653a..35e42c8a 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayOrderCloseRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayOrderCloseRequest.java @@ -21,6 +21,19 @@ import java.util.Map; @XStreamAlias("xml") public class WxPayOrderCloseRequest extends BaseWxPayRequest { + /** + *
+   * 微信订单号
+   * transaction_id
+   * 二选一
+   * String(32)
+   * 20150806125346
+   * 微信的订单号,优先使用。
+   * 
+ */ + @XStreamAlias("transaction_id") + private String transactionId; + /** *
    * 商户订单号
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayMicropayResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayMicropayResult.java
index b7de7ffe..b4630d30 100644
--- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayMicropayResult.java
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayMicropayResult.java
@@ -49,7 +49,33 @@ public class WxPayMicropayResult extends BaseWxPayResult {
 
   /**
    * 
-   * 交易类型.
+   * 用户子标识
+   * openid
+   * 是
+   * String(128)
+   * Y
+   * 用户在商户appid 下的唯一标识
+   * 
+ **/ + @XStreamAlias("sub_openid") + private String subOpenid; + + /** + *
+   * 是否关注子公众账号
+   * sub_is_subscribe
+   * 是
+   * String(1)
+   * Y
+   * 用户是否关注公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
+   * 
+ **/ + @XStreamAlias("sub_is_subscribe") + private String subIsSubscribe; + + /** + *
+   * 交易类型
    * trade_type
    * 是
    * String(16)