diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java index fb26038f..58f60a41 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java @@ -5,15 +5,11 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.io.Serializable; +import java.util.List; + /** *
- *   注释中各行对应含义:
- *   字段名
- *   字段
- *   必填
- *   示例值
- *   类型
- *   说明
  * Created by Binary Wang on 2016-11-28.
  * 
* @@ -24,15 +20,16 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @XStreamAlias("xml") public class WxPayRedpackQueryResult extends BaseWxPayResult { + private static final long serialVersionUID = -3849864122189552906L; /** *
-   * 商户订单号
-   * mch_billno
-   * 是
-   * 10000098201411111234567890
-   * String(28)
-   * 商户使用查询API填写的商户单号的原路返回
+   * 字段含义:商户订单号.
+   * 字段名:mch_billno
+   * 是否必填:是
+   * 示例值:10000098201411111234567890
+   * 类型:String(28)
+   * 字段说明:商户使用查询API填写的商户单号的原路返回
    * 
*/ @XStreamAlias("mch_billno") @@ -40,12 +37,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包单号
-   * detail_id
-   * 是
-   * 1000000000201503283103439304
-   * String(32)
-   * 使用API发放现金红包时返回的红包单号
+   * 字段含义:红包单号.
+   * 字段名:detail_id
+   * 是否必填:是
+   * 示例值:1000000000201503283103439304
+   * 类型:String(32)
+   * 字段说明:使用API发放现金红包时返回的红包单号
    * 
*/ @XStreamAlias("detail_id") @@ -53,12 +50,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包状态
-   * status
-   * 是
-   * RECEIVED
-   * string(16)
-   * SENDING:发放中,
+   * 字段含义:红包状态.
+   * 字段名:status
+   * 是否必填:是
+   * 示例值:RECEIVED
+   * 类型:string(16)
+   * 字段说明:SENDING:发放中,
    * SENT:已发放待领取,
    * FAILED:发放失败,
    * RECEIVED:已领取,
@@ -71,12 +68,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
 
   /**
    * 
-   * 发放类型
-   * send_type
-   * 是
-   * API
-   * String(32)
-   *  API:通过API接口发放,
+   * 字段含义:发放类型.
+   * 字段名:send_type
+   * 是否必填:是
+   * 示例值:API
+   * 类型:String(32)
+   * 字段说明:API:通过API接口发放,
    *  UPLOAD:通过上传文件方式发放,
    *  ACTIVITY:通过活动方式发放
    * 
@@ -86,12 +83,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包类型
-   * hb_type
-   * 是
-   * GROUP
-   * String(32)
-   *  GROUP:裂变红包,
+   * 字段含义:红包类型.
+   * 字段名:hb_type
+   * 是否必填:是
+   * 示例值:GROUP
+   * 类型:String(32)
+   * 字段说明:GROUP:裂变红包,
    *  NORMAL:普通红包
    * 
*/ @@ -100,12 +97,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包个数
-   * total_num
-   * 是
-   * 1
-   * int
-   * 红包个数
+   * 字段含义:红包个数.
+   * 字段名:total_num
+   * 是否必填:是
+   * 示例值:1
+   * 类型:int
+   * 字段说明:红包个数
    * 
*/ @XStreamAlias("total_num") @@ -113,12 +110,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包金额
-   * total_amount
-   * 是
-   * 5000
-   * int
-   * 红包总金额(单位分)
+   * 字段含义:红包金额.
+   * 字段名:total_amount
+   * 是否必填:是
+   * 示例值:5000
+   * 类型:int
+   * 字段说明:红包总金额(单位分)
    * 
*/ @XStreamAlias("total_amount") @@ -126,12 +123,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 失败原因
-   * reason
-   * 否
-   * 余额不足
-   * String(32)
-   * 发送失败原因
+   * 字段含义:失败原因.
+   * 字段名:reason
+   * 是否必填:否
+   * 示例值:余额不足
+   * 类型:String(32)
+   * 字段说明:发送失败原因
    * 
*/ @XStreamAlias("reason") @@ -139,12 +136,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包发送时间
-   * send_time
-   * 是
-   * 2015-04-21 20:00:00
-   * String(32)
-   * 红包的发送时间
+   * 字段含义:红包发送时间.
+   * 字段名:send_time
+   * 是否必填:是
+   * 示例值:2015-04-21 20:00:00
+   * 类型:String(32)
+   * 字段说明:红包的发送时间
    * 
*/ @XStreamAlias("send_time") @@ -152,12 +149,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包退款时间
-   * refund_time
-   * 否
-   * 2015-04-21 23:03:00
-   * String(32)
-   * 红包的退款时间(如果其未领取的退款)
+   * 字段含义:红包退款时间.
+   * 字段名: refund_time
+   * 是否必填:否
+   * 示例值:2015-04-21 23:03:00
+   * 类型:String(32)
+   * 字段说明:红包的退款时间(如果其未领取的退款)
    * 
*/ @XStreamAlias("refund_time") @@ -165,12 +162,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 红包退款金额
-   * refund_amount
-   * 否
-   * 8000
-   * Int
-   * 红包退款金额
+   * 字段含义:红包退款金额.
+   * 字段名:refund_amount
+   * 是否必填:否
+   * 示例值:8000
+   * 类型:Int
+   * 字段说明:红包退款金额
    * 
*/ @XStreamAlias("refund_amount") @@ -178,12 +175,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 祝福语
-   * wishing
-   * 否
-   * 新年快乐
-   * String(128)
-   * 祝福语
+   * 字段含义:祝福语.
+   * 字段名:wishing
+   * 是否必填:否
+   * 示例值:新年快乐
+   * 类型:String(128)
+   * 字段说明:祝福语
    * 
*/ @XStreamAlias("wishing") @@ -191,12 +188,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 活动描述
-   * remark
-   * 否
-   * 新年红包
-   * String(256)
-   * 活动描述,低版本微信可见
+   * 字段含义:活动描述.
+   * 字段名:remark
+   * 是否必填:否
+   * 示例值:新年红包
+   * 类型:String(256)
+   * 字段说明:活动描述,低版本微信可见
    * 
*/ @XStreamAlias("remark") @@ -204,12 +201,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 活动名称
-   * act_name
-   * 否
-   * 新年红包
-   * String(32)
-   * 发红包的活动名称
+   * 字段含义:活动名称.
+   * 字段名:act_name
+   * 是否必填:否
+   * 示例值:新年红包
+   * 类型:String(32)
+   * 字段说明:发红包的活动名称
    * 
*/ @XStreamAlias("act_name") @@ -217,53 +214,57 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult { /** *
-   * 裂变红包领取列表
-   * hblist
-   * 否
-   *
-   *
-   * 裂变红包的领取列表
+   * 字段含义:裂变红包领取列表.
+   * 字段名:redpackList
+   * 是否必填:否
+   * 字段说明: 裂变红包的领取列表
    * 
*/ - @XStreamAlias("hblist") - private String hblist; + @XStreamAlias("redpackList") + private List redpackList; - /** - *
-   * 领取红包的Openid
-   * openid
-   * 是
-   * ohO4GtzOAAYMp2yapORH3dQB3W18
-   * String(32)
-   * 领取红包的openid
-   * 
- */ - @XStreamAlias("openid") - private String openid; + @Data + @XStreamAlias("hbinfo") + public static class RedpackInfo implements Serializable { + private static final long serialVersionUID = 7829773321457772100L; + /** + *
+     * 字段含义:领取红包的Openid.
+     * 字段名: openid
+     * 是否必填:是
+     * 示例值:ohO4GtzOAAYMp2yapORH3dQB3W18
+     * 类型:String(32)
+     * 字段说明:领取红包的openid
+     * 
+ */ + @XStreamAlias("openid") + private String openid; - /** - *
-   * 金额
-   * amount
-   * 是
-   * 100
-   * int
-   * 领取金额
-   * 
- */ - @XStreamAlias("amount") - private Integer amount; + /** + *
+     * 字段含义:金额.
+     * 字段名: amount
+     * 是否必填:是
+     * 示例值:100
+     * 类型:int
+     * 字段说明:领取金额
+     * 
+ */ + @XStreamAlias("amount") + private Integer amount; + + /** + *
+     * 字段含义:接收时间.
+     * 字段名: rcv_time
+     * 是否必填:是
+     * 示例值:2015-04-21 20:00:00
+     * 类型:String(32)
+     * 字段说明:领取红包的时间
+     * 
+ */ + @XStreamAlias("rcv_time") + private String receiveTime; + } - /** - *
-   * 接收时间
-   * rcv_time
-   * 是
-   * 2015-04-21 20:00:00
-   * String(32)
-   * 领取红包的时间
-   * 
- */ - @XStreamAlias("rcv_time") - private String receiveTime; } diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResultTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResultTest.java new file mode 100644 index 00000000..0e5f145a --- /dev/null +++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResultTest.java @@ -0,0 +1,51 @@ +package com.github.binarywang.wxpay.bean.result; + +import org.testng.annotations.*; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + *
+ *
+ * Created by Binary Wang on 2018/1/24.
+ * 
+ * + * @author Binary Wang + */ +public class WxPayRedpackQueryResultTest { + @Test + public void testFromXML() { + String xmlString = "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "1\n" + + "100\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "100\n" + + "\n" + + "\n" + + "\n" + + ""; + + WxPayRedpackQueryResult orderQueryResult = WxPayRedpackQueryResult.fromXML(xmlString, WxPayRedpackQueryResult.class); + System.out.println(orderQueryResult); + assertThat(orderQueryResult).isNotNull(); + + assertThat(orderQueryResult.getRedpackList()).isNotEmpty(); + assertThat(orderQueryResult.getRedpackList().get(0).getAmount()).isEqualTo(100); + assertThat(orderQueryResult.getRedpackList().get(0).getOpenid()).isEqualTo("o3yHF0uHuckI3yE6lwWiFQBQdVDI"); + assertThat(orderQueryResult.getRedpackList().get(0).getReceiveTime()).isEqualTo("2018-01-23 13:45:31"); + } +}