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.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 注释中各行对应含义:
|
||||
* 字段名
|
||||
* 字段
|
||||
* 必填
|
||||
* 示例值
|
||||
* 类型
|
||||
* 说明
|
||||
* Created by Binary Wang on 2016-11-28.
|
||||
* </pre>
|
||||
*
|
||||
@ -24,15 +20,16 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
@XStreamAlias("xml")
|
||||
public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
private static final long serialVersionUID = -3849864122189552906L;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 商户订单号
|
||||
* mch_billno
|
||||
* 是
|
||||
* 10000098201411111234567890
|
||||
* String(28)
|
||||
* 商户使用查询API填写的商户单号的原路返回
|
||||
* 字段含义:商户订单号.
|
||||
* 字段名:mch_billno
|
||||
* 是否必填:是
|
||||
* 示例值:10000098201411111234567890
|
||||
* 类型:String(28)
|
||||
* 字段说明:商户使用查询API填写的商户单号的原路返回
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("mch_billno")
|
||||
@ -40,12 +37,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包单号
|
||||
* detail_id
|
||||
* 是
|
||||
* 1000000000201503283103439304
|
||||
* String(32)
|
||||
* 使用API发放现金红包时返回的红包单号
|
||||
* 字段含义:红包单号.
|
||||
* 字段名:detail_id
|
||||
* 是否必填:是
|
||||
* 示例值:1000000000201503283103439304
|
||||
* 类型:String(32)
|
||||
* 字段说明:使用API发放现金红包时返回的红包单号
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("detail_id")
|
||||
@ -53,12 +50,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包状态
|
||||
* status
|
||||
* 是
|
||||
* RECEIVED
|
||||
* string(16)
|
||||
* SENDING:发放中,
|
||||
* 字段含义:红包状态.
|
||||
* 字段名:status
|
||||
* 是否必填:是
|
||||
* 示例值:RECEIVED
|
||||
* 类型:string(16)
|
||||
* 字段说明:SENDING:发放中,
|
||||
* SENT:已发放待领取,
|
||||
* FAILED:发放失败,
|
||||
* RECEIVED:已领取,
|
||||
@ -71,12 +68,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 发放类型
|
||||
* send_type
|
||||
* 是
|
||||
* API
|
||||
* String(32)
|
||||
* API:通过API接口发放,
|
||||
* 字段含义:发放类型.
|
||||
* 字段名:send_type
|
||||
* 是否必填:是
|
||||
* 示例值:API
|
||||
* 类型:String(32)
|
||||
* 字段说明:API:通过API接口发放,
|
||||
* UPLOAD:通过上传文件方式发放,
|
||||
* ACTIVITY:通过活动方式发放
|
||||
* </pre>
|
||||
@ -86,12 +83,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包类型
|
||||
* hb_type
|
||||
* 是
|
||||
* GROUP
|
||||
* String(32)
|
||||
* GROUP:裂变红包,
|
||||
* 字段含义:红包类型.
|
||||
* 字段名:hb_type
|
||||
* 是否必填:是
|
||||
* 示例值:GROUP
|
||||
* 类型:String(32)
|
||||
* 字段说明:GROUP:裂变红包,
|
||||
* NORMAL:普通红包
|
||||
* </pre>
|
||||
*/
|
||||
@ -100,12 +97,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包个数
|
||||
* total_num
|
||||
* 是
|
||||
* 1
|
||||
* int
|
||||
* 红包个数
|
||||
* 字段含义:红包个数.
|
||||
* 字段名:total_num
|
||||
* 是否必填:是
|
||||
* 示例值:1
|
||||
* 类型:int
|
||||
* 字段说明:红包个数
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("total_num")
|
||||
@ -113,12 +110,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包金额
|
||||
* total_amount
|
||||
* 是
|
||||
* 5000
|
||||
* int
|
||||
* 红包总金额(单位分)
|
||||
* 字段含义:红包金额.
|
||||
* 字段名:total_amount
|
||||
* 是否必填:是
|
||||
* 示例值:5000
|
||||
* 类型:int
|
||||
* 字段说明:红包总金额(单位分)
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("total_amount")
|
||||
@ -126,12 +123,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 失败原因
|
||||
* reason
|
||||
* 否
|
||||
* 余额不足
|
||||
* String(32)
|
||||
* 发送失败原因
|
||||
* 字段含义:失败原因.
|
||||
* 字段名:reason
|
||||
* 是否必填:否
|
||||
* 示例值:余额不足
|
||||
* 类型:String(32)
|
||||
* 字段说明:发送失败原因
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("reason")
|
||||
@ -139,12 +136,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包发送时间
|
||||
* send_time
|
||||
* 是
|
||||
* 2015-04-21 20:00:00
|
||||
* String(32)
|
||||
* 红包的发送时间
|
||||
* 字段含义:红包发送时间.
|
||||
* 字段名:send_time
|
||||
* 是否必填:是
|
||||
* 示例值:2015-04-21 20:00:00
|
||||
* 类型:String(32)
|
||||
* 字段说明:红包的发送时间
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("send_time")
|
||||
@ -152,12 +149,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包退款时间
|
||||
* refund_time
|
||||
* 否
|
||||
* 2015-04-21 23:03:00
|
||||
* String(32)
|
||||
* 红包的退款时间(如果其未领取的退款)
|
||||
* 字段含义:红包退款时间.
|
||||
* 字段名: refund_time
|
||||
* 是否必填:否
|
||||
* 示例值:2015-04-21 23:03:00
|
||||
* 类型:String(32)
|
||||
* 字段说明:红包的退款时间(如果其未领取的退款)
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("refund_time")
|
||||
@ -165,12 +162,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 红包退款金额
|
||||
* refund_amount
|
||||
* 否
|
||||
* 8000
|
||||
* Int
|
||||
* 红包退款金额
|
||||
* 字段含义:红包退款金额.
|
||||
* 字段名:refund_amount
|
||||
* 是否必填:否
|
||||
* 示例值:8000
|
||||
* 类型:Int
|
||||
* 字段说明:红包退款金额
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("refund_amount")
|
||||
@ -178,12 +175,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 祝福语
|
||||
* wishing
|
||||
* 否
|
||||
* 新年快乐
|
||||
* String(128)
|
||||
* 祝福语
|
||||
* 字段含义:祝福语.
|
||||
* 字段名:wishing
|
||||
* 是否必填:否
|
||||
* 示例值:新年快乐
|
||||
* 类型:String(128)
|
||||
* 字段说明:祝福语
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("wishing")
|
||||
@ -191,12 +188,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 活动描述
|
||||
* remark
|
||||
* 否
|
||||
* 新年红包
|
||||
* String(256)
|
||||
* 活动描述,低版本微信可见
|
||||
* 字段含义:活动描述.
|
||||
* 字段名:remark
|
||||
* 是否必填:否
|
||||
* 示例值:新年红包
|
||||
* 类型:String(256)
|
||||
* 字段说明:活动描述,低版本微信可见
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("remark")
|
||||
@ -204,12 +201,12 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 活动名称
|
||||
* act_name
|
||||
* 否
|
||||
* 新年红包
|
||||
* String(32)
|
||||
* 发红包的活动名称
|
||||
* 字段含义:活动名称.
|
||||
* 字段名:act_name
|
||||
* 是否必填:否
|
||||
* 示例值:新年红包
|
||||
* 类型:String(32)
|
||||
* 字段说明:发红包的活动名称
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("act_name")
|
||||
@ -217,53 +214,57 @@ public class WxPayRedpackQueryResult extends BaseWxPayResult {
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 裂变红包领取列表
|
||||
* hblist
|
||||
* 否
|
||||
*
|
||||
*
|
||||
* 裂变红包的领取列表
|
||||
* 字段含义:裂变红包领取列表.
|
||||
* 字段名:redpackList
|
||||
* 是否必填:否
|
||||
* 字段说明: 裂变红包的领取列表
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("hblist")
|
||||
private String hblist;
|
||||
@XStreamAlias("redpackList")
|
||||
private List<RedpackInfo> redpackList;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 领取红包的Openid
|
||||
* openid
|
||||
* 是
|
||||
* ohO4GtzOAAYMp2yapORH3dQB3W18
|
||||
* String(32)
|
||||
* 领取红包的openid
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("openid")
|
||||
private String openid;
|
||||
@Data
|
||||
@XStreamAlias("hbinfo")
|
||||
public static class RedpackInfo implements Serializable {
|
||||
private static final long serialVersionUID = 7829773321457772100L;
|
||||
/**
|
||||
* <pre>
|
||||
* 字段含义:领取红包的Openid.
|
||||
* 字段名: openid
|
||||
* 是否必填:是
|
||||
* 示例值:ohO4GtzOAAYMp2yapORH3dQB3W18
|
||||
* 类型:String(32)
|
||||
* 字段说明:领取红包的openid
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("openid")
|
||||
private String openid;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 金额
|
||||
* amount
|
||||
* 是
|
||||
* 100
|
||||
* int
|
||||
* 领取金额
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("amount")
|
||||
private Integer amount;
|
||||
/**
|
||||
* <pre>
|
||||
* 字段含义:金额.
|
||||
* 字段名: amount
|
||||
* 是否必填:是
|
||||
* 示例值:100
|
||||
* 类型:int
|
||||
* 字段说明:领取金额
|
||||
* </pre>
|
||||
*/
|
||||
@XStreamAlias("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