mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-24 07:23:01 +08:00
微信支付修复红包查询结果类解析问题
This commit is contained in:
parent
6b408eabf2
commit
8db4935428
@ -5,15 +5,11 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 注释中各行对应含义:
|
|
||||||
* 字段名
|
|
||||||
* 字段
|
|
||||||
* 必填
|
|
||||||
* 示例值
|
|
||||||
* 类型
|
|
||||||
* 说明
|
|
||||||
* Created by Binary Wang on 2016-11-28.
|
* Created by Binary Wang on 2016-11-28.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
@ -24,15 +20,16 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@XStreamAlias("xml")
|
@XStreamAlias("xml")
|
||||||
public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||||
|
private static final long serialVersionUID = -3849864122189552906L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 商户订单号
|
* 字段含义:商户订单号.
|
||||||
* mch_billno
|
* 字段名:mch_billno
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 10000098201411111234567890
|
* 示例值:10000098201411111234567890
|
||||||
* String(28)
|
* 类型:String(28)
|
||||||
* 商户使用查询API填写的商户单号的原路返回
|
* 字段说明:商户使用查询API填写的商户单号的原路返回
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("mch_billno")
|
@XStreamAlias("mch_billno")
|
||||||
@ -40,12 +37,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包单号
|
* 字段含义:红包单号.
|
||||||
* detail_id
|
* 字段名:detail_id
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 1000000000201503283103439304
|
* 示例值:1000000000201503283103439304
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* 使用API发放现金红包时返回的红包单号
|
* 字段说明:使用API发放现金红包时返回的红包单号
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("detail_id")
|
@XStreamAlias("detail_id")
|
||||||
@ -53,12 +50,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包状态
|
* 字段含义:红包状态.
|
||||||
* status
|
* 字段名:status
|
||||||
* 是
|
* 是否必填:是
|
||||||
* RECEIVED
|
* 示例值:RECEIVED
|
||||||
* string(16)
|
* 类型:string(16)
|
||||||
* SENDING:发放中,
|
* 字段说明:SENDING:发放中,
|
||||||
* SENT:已发放待领取,
|
* SENT:已发放待领取,
|
||||||
* FAILED:发放失败,
|
* FAILED:发放失败,
|
||||||
* RECEIVED:已领取,
|
* RECEIVED:已领取,
|
||||||
@ -71,12 +68,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 发放类型
|
* 字段含义:发放类型.
|
||||||
* send_type
|
* 字段名:send_type
|
||||||
* 是
|
* 是否必填:是
|
||||||
* API
|
* 示例值:API
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* API:通过API接口发放,
|
* 字段说明:API:通过API接口发放,
|
||||||
* UPLOAD:通过上传文件方式发放,
|
* UPLOAD:通过上传文件方式发放,
|
||||||
* ACTIVITY:通过活动方式发放
|
* ACTIVITY:通过活动方式发放
|
||||||
* </pre>
|
* </pre>
|
||||||
@ -86,12 +83,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包类型
|
* 字段含义:红包类型.
|
||||||
* hb_type
|
* 字段名:hb_type
|
||||||
* 是
|
* 是否必填:是
|
||||||
* GROUP
|
* 示例值:GROUP
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* GROUP:裂变红包,
|
* 字段说明:GROUP:裂变红包,
|
||||||
* NORMAL:普通红包
|
* NORMAL:普通红包
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@ -100,12 +97,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包个数
|
* 字段含义:红包个数.
|
||||||
* total_num
|
* 字段名:total_num
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 1
|
* 示例值:1
|
||||||
* int
|
* 类型:int
|
||||||
* 红包个数
|
* 字段说明:红包个数
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("total_num")
|
@XStreamAlias("total_num")
|
||||||
@ -113,12 +110,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包金额
|
* 字段含义:红包金额.
|
||||||
* total_amount
|
* 字段名:total_amount
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 5000
|
* 示例值:5000
|
||||||
* int
|
* 类型:int
|
||||||
* 红包总金额(单位分)
|
* 字段说明:红包总金额(单位分)
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("total_amount")
|
@XStreamAlias("total_amount")
|
||||||
@ -126,12 +123,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 失败原因
|
* 字段含义:失败原因.
|
||||||
* reason
|
* 字段名:reason
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 余额不足
|
* 示例值:余额不足
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* 发送失败原因
|
* 字段说明:发送失败原因
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("reason")
|
@XStreamAlias("reason")
|
||||||
@ -139,12 +136,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包发送时间
|
* 字段含义:红包发送时间.
|
||||||
* send_time
|
* 字段名:send_time
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 2015-04-21 20:00:00
|
* 示例值:2015-04-21 20:00:00
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* 红包的发送时间
|
* 字段说明:红包的发送时间
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("send_time")
|
@XStreamAlias("send_time")
|
||||||
@ -152,12 +149,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包退款时间
|
* 字段含义:红包退款时间.
|
||||||
* refund_time
|
* 字段名: refund_time
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 2015-04-21 23:03:00
|
* 示例值:2015-04-21 23:03:00
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* 红包的退款时间(如果其未领取的退款)
|
* 字段说明:红包的退款时间(如果其未领取的退款)
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("refund_time")
|
@XStreamAlias("refund_time")
|
||||||
@ -165,12 +162,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 红包退款金额
|
* 字段含义:红包退款金额.
|
||||||
* refund_amount
|
* 字段名:refund_amount
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 8000
|
* 示例值:8000
|
||||||
* Int
|
* 类型:Int
|
||||||
* 红包退款金额
|
* 字段说明:红包退款金额
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("refund_amount")
|
@XStreamAlias("refund_amount")
|
||||||
@ -178,12 +175,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 祝福语
|
* 字段含义:祝福语.
|
||||||
* wishing
|
* 字段名:wishing
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 新年快乐
|
* 示例值:新年快乐
|
||||||
* String(128)
|
* 类型:String(128)
|
||||||
* 祝福语
|
* 字段说明:祝福语
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("wishing")
|
@XStreamAlias("wishing")
|
||||||
@ -191,12 +188,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 活动描述
|
* 字段含义:活动描述.
|
||||||
* remark
|
* 字段名:remark
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 新年红包
|
* 示例值:新年红包
|
||||||
* String(256)
|
* 类型:String(256)
|
||||||
* 活动描述,低版本微信可见
|
* 字段说明:活动描述,低版本微信可见
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("remark")
|
@XStreamAlias("remark")
|
||||||
@ -204,12 +201,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 活动名称
|
* 字段含义:活动名称.
|
||||||
* act_name
|
* 字段名:act_name
|
||||||
* 否
|
* 是否必填:否
|
||||||
* 新年红包
|
* 示例值:新年红包
|
||||||
* String(32)
|
* 类型:String(32)
|
||||||
* 发红包的活动名称
|
* 字段说明:发红包的活动名称
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("act_name")
|
@XStreamAlias("act_name")
|
||||||
@ -217,53 +214,57 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 裂变红包领取列表
|
* 字段含义:裂变红包领取列表.
|
||||||
* hblist
|
* 字段名:redpackList
|
||||||
* 否
|
* 是否必填:否
|
||||||
*
|
* 字段说明: 裂变红包的领取列表
|
||||||
*
|
|
||||||
* 裂变红包的领取列表
|
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("hblist")
|
@XStreamAlias("redpackList")
|
||||||
private String hblist;
|
private List<RedpackInfo> redpackList;
|
||||||
|
|
||||||
/**
|
@Data
|
||||||
* <pre>
|
@XStreamAlias("hbinfo")
|
||||||
* 领取红包的Openid
|
public static class RedpackInfo implements Serializable {
|
||||||
* openid
|
private static final long serialVersionUID = 7829773321457772100L;
|
||||||
* 是
|
/**
|
||||||
* ohO4GtzOAAYMp2yapORH3dQB3W18
|
* <pre>
|
||||||
* String(32)
|
* 字段含义:领取红包的Openid.
|
||||||
* 领取红包的openid
|
* 字段名: openid
|
||||||
* </pre>
|
* 是否必填:是
|
||||||
*/
|
* 示例值:ohO4GtzOAAYMp2yapORH3dQB3W18
|
||||||
@XStreamAlias("openid")
|
* 类型:String(32)
|
||||||
private String openid;
|
* 字段说明:领取红包的openid
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@XStreamAlias("openid")
|
||||||
|
private String openid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 金额
|
* 字段含义:金额.
|
||||||
* amount
|
* 字段名: amount
|
||||||
* 是
|
* 是否必填:是
|
||||||
* 100
|
* 示例值:100
|
||||||
* int
|
* 类型:int
|
||||||
* 领取金额
|
* 字段说明:领取金额
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@XStreamAlias("amount")
|
@XStreamAlias("amount")
|
||||||
private Integer amount;
|
private Integer amount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 字段含义:接收时间.
|
||||||
|
* 字段名: rcv_time
|
||||||
|
* 是否必填:是
|
||||||
|
* 示例值:2015-04-21 20:00:00
|
||||||
|
* 类型:String(32)
|
||||||
|
* 字段说明:领取红包的时间
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@XStreamAlias("rcv_time")
|
||||||
|
private String receiveTime;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>
|
|
||||||
* 接收时间
|
|
||||||
* rcv_time
|
|
||||||
* 是
|
|
||||||
* 2015-04-21 20:00:00
|
|
||||||
* String(32)
|
|
||||||
* 领取红包的时间
|
|
||||||
* </pre>
|
|
||||||
*/
|
|
||||||
@XStreamAlias("rcv_time")
|
|
||||||
private String receiveTime;
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.github.binarywang.wxpay.bean.result;
|
||||||
|
|
||||||
|
import org.testng.annotations.*;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* Created by Binary Wang on 2018/1/24.
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
|
*/
|
||||||
|
public class WxPayRedpackQueryResultTest {
|
||||||
|
@Test
|
||||||
|
public void testFromXML() {
|
||||||
|
String xmlString = "<xml>\n" +
|
||||||
|
"<return_code><![CDATA[SUCCESS]]></return_code>\n" +
|
||||||
|
"<return_msg><![CDATA[OK]]></return_msg>\n" +
|
||||||
|
"<result_code><![CDATA[SUCCESS]]></result_code>\n" +
|
||||||
|
"<err_code><![CDATA[SUCCESS]]></err_code>\n" +
|
||||||
|
"<err_code_des><![CDATA[OK]]></err_code_des>\n" +
|
||||||
|
"<mch_billno><![CDATA[1473919402201801230145075410]]></mch_billno>\n" +
|
||||||
|
"<mch_id><![CDATA[1497236182]]></mch_id>\n" +
|
||||||
|
"<detail_id><![CDATA[1000041701201801233000139830103]]></detail_id>\n" +
|
||||||
|
"<status><![CDATA[RECEIVED]]></status>\n" +
|
||||||
|
"<send_type><![CDATA[API]]></send_type>\n" +
|
||||||
|
"<hb_type><![CDATA[NORMAL]]></hb_type>\n" +
|
||||||
|
"<total_num>1</total_num>\n" +
|
||||||
|
"<total_amount>100</total_amount>\n" +
|
||||||
|
"<send_time><![CDATA[2018-01-23 13:45:08]]></send_time>\n" +
|
||||||
|
"<redpackList>\n" +
|
||||||
|
"<hbinfo>\n" +
|
||||||
|
"<openid><![CDATA[o3yHF0uHuckI3yE6lwWiFQBQdVDI]]></openid>\n" +
|
||||||
|
"<amount>100</amount>\n" +
|
||||||
|
"<rcv_time><![CDATA[2018-01-23 13:45:31]]></rcv_time>\n" +
|
||||||
|
"</hbinfo>\n" +
|
||||||
|
"</redpackList>\n" +
|
||||||
|
"</xml>";
|
||||||
|
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user