Explorar el Código

微信支付修复红包查询结果类解析问题

master
Binary Wang hace 7 años
padre
commit
8db4935428
Se han modificado 2 ficheros con 187 adiciones y 135 borrados
  1. +136
    -135
      weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java
  2. +51
    -0
      weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResultTest.java

+ 136
- 135
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResult.java Ver fichero

@@ -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;
}

+ 51
- 0
weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/result/WxPayRedpackQueryResultTest.java Ver fichero

@@ -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");
}
}

Cargando…
Cancelar
Guardar