#389 微信支付查询退款返回结果中增加退款成功时间字段

This commit is contained in:
Binary Wang 2017-12-02 15:07:39 +08:00
parent 919a534962
commit f7dab9267e
2 changed files with 223 additions and 205 deletions

View File

@ -14,13 +14,6 @@ import java.util.Arrays;
/** /**
* <pre> * <pre>
* 微信支付-申请退款请求参数 * 微信支付-申请退款请求参数
* 注释中各行每个字段描述对应如下
* <li>字段名
* <li>变量名
* <li>是否必填
* <li>类型
* <li>示例值
* <li>描述
* Created by Binary Wang on 2016-10-08. * Created by Binary Wang on 2016-10-08.
* </pre> * </pre>
* *
@ -34,53 +27,52 @@ import java.util.Arrays;
@XStreamAlias("xml") @XStreamAlias("xml")
public class WxPayRefundRequest extends WxPayBaseRequest { public class WxPayRefundRequest extends WxPayBaseRequest {
private static final String[] REFUND_ACCOUNT = new String[]{ private static final String[] REFUND_ACCOUNT = new String[]{
RefundAccountSource.RECHARGE_FUNDS, RefundAccountSource.RECHARGE_FUNDS, RefundAccountSource.UNSETTLED_FUNDS};
RefundAccountSource.UNSETTLED_FUNDS
};
/** /**
* <pre> * <pre>
* 设备号 * 字段名设备号.
* device_info * 变量名device_info
* * 是否必填
* String(32) * 类型String(32)
* 13467007045764 * 示例值13467007045764
* 终端设备号 * 描述终端设备号
* </pre> * </pre>
*/ */
@XStreamAlias("device_info") @XStreamAlias("device_info")
private String deviceInfo; private String deviceInfo;
/** /**
* <pre> * <pre>
* 微信订单号 * 字段名微信订单号.
* transaction_id * 变量名transaction_id
* 跟out_trade_no二选一 * 是否必填跟out_trade_no二选一
* String(28) * 类型String(28)
* 1217752501201400000000000000 * 示例值1217752501201400000000000000
* 微信生成的订单号在支付通知中有返回 * 描述微信生成的订单号在支付通知中有返回
* </pre> * </pre>
*/ */
@XStreamAlias("transaction_id") @XStreamAlias("transaction_id")
private String transactionId; private String transactionId;
/** /**
* <pre> * <pre>
* 商户订单号 * 字段名商户订单号.
* out_trade_no * 变量名out_trade_no
* 跟transaction_id二选一 * 是否必填跟transaction_id二选一
* String(32) * 类型String(32)
* 1217752501201400000000000000 * 示例值1217752501201400000000000000
* 商户侧传给微信的订单号 * 描述商户侧传给微信的订单号
* </pre> * </pre>
*/ */
@XStreamAlias("out_trade_no") @XStreamAlias("out_trade_no")
private String outTradeNo; private String outTradeNo;
/** /**
* <pre> * <pre>
* 商户退款单号 * 字段名商户退款单号.
* out_refund_no * 变量名out_refund_no
* * 否必填
* String(32) * 类型String(32)
* 1217752501201400000000000000 * 示例值1217752501201400000000000000
* 商户系统内部的退款单号商户系统内部唯一同一退款单号多次请求只退一笔 * 描述商户系统内部的退款单号商户系统内部唯一同一退款单号多次请求只退一笔
* </pre> * </pre>
*/ */
@Required @Required
@ -88,12 +80,12 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
private String outRefundNo; private String outRefundNo;
/** /**
* <pre> * <pre>
* 订单金额 * 字段名订单金额.
* total_fee * 变量名total_fee
* * 否必填
* Int * 类型Int
* 100 * 示例值100
* 订单总金额单位为分只能为整数详见支付金额 * 描述订单总金额单位为分只能为整数详见支付金额
* </pre> * </pre>
*/ */
@Required @Required
@ -101,12 +93,12 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
private Integer totalFee; private Integer totalFee;
/** /**
* <pre> * <pre>
* 退款金额 * 字段名退款金额.
* refund_fee * 变量名refund_fee
* * 否必填
* Int * 类型Int
* 100 * 示例值100
* 退款总金额订单总金额单位为分只能为整数详见支付金额 * 描述退款总金额订单总金额单位为分只能为整数详见支付金额
* </pre> * </pre>
*/ */
@Required @Required
@ -114,24 +106,24 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
private Integer refundFee; private Integer refundFee;
/** /**
* <pre> * <pre>
* 货币种类 * 字段名货币种类.
* refund_fee_type * 变量名refund_fee_type
* * 是否必填
* String(8) * 类型String(8)
* CNY * 示例值CNY
* 货币类型符合ISO 4217标准的三位字母代码默认人民币CNY其他值列表详见货币类型 * 描述货币类型符合ISO 4217标准的三位字母代码默认人民币CNY其他值列表详见货币类型
* </pre> * </pre>
*/ */
@XStreamAlias("refund_fee_type") @XStreamAlias("refund_fee_type")
private String refundFeeType; private String refundFeeType;
/** /**
* <pre> * <pre>
* 操作员 * 字段名操作员.
* op_user_id * 变量名op_user_id
* * 否必填
* String(32) * 类型String(32)
* 1900000109 * 示例值1900000109
* 操作员帐号, 默认为商户号 * 描述操作员帐号, 默认为商户号
* </pre> * </pre>
*/ */
//@Required //@Required
@ -139,12 +131,12 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
private String opUserId; private String opUserId;
/** /**
* <pre> * <pre>
* 退款资金来源 * 字段名退款资金来源.
* refund_account * 变量名refund_account
* * 是否必填
* String(30) * 类型String(30)
* REFUND_SOURCE_RECHARGE_FUNDS * 示例值REFUND_SOURCE_RECHARGE_FUNDS
* 仅针对老资金流商户使用 * 描述仅针对老资金流商户使用
* <li>REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款默认使用未结算资金退款 * <li>REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款默认使用未结算资金退款
* <li>REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款 * <li>REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款
* </pre> * </pre>
@ -153,12 +145,12 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
private String refundAccount; private String refundAccount;
/** /**
* <pre> * <pre>
* 退款原因 * 字段名退款原因.
* refund_account * 变量名refund_account
* * 是否必填
* String(80) * 类型String(80)
* 商品已售完 * 示例值商品已售完
* 若商户传入会在下发给用户的退款消息中体现退款原因 * 描述若商户传入会在下发给用户的退款消息中体现退款原因
* </pre> * </pre>
*/ */
@XStreamAlias("refund_desc") @XStreamAlias("refund_desc")
@ -177,8 +169,8 @@ public class WxPayRefundRequest extends WxPayBaseRequest {
protected void checkConstraints() throws WxPayException { protected void checkConstraints() throws WxPayException {
if (StringUtils.isNotBlank(this.getRefundAccount())) { if (StringUtils.isNotBlank(this.getRefundAccount())) {
if (!ArrayUtils.contains(REFUND_ACCOUNT, this.getRefundAccount())) { if (!ArrayUtils.contains(REFUND_ACCOUNT, this.getRefundAccount())) {
throw new WxPayException(String.format("refund_account目前必须为%s其中之一,实际值:%s", throw new WxPayException(
Arrays.toString(REFUND_ACCOUNT), this.getRefundAccount())); String.format("refund_account目前必须为%s其中之一,实际值:%s", Arrays.toString(REFUND_ACCOUNT), this.getRefundAccount()));
} }
} }

View File

@ -8,6 +8,7 @@ import java.util.List;
/** /**
* <pre> * <pre>
* 微信支付-退款查询返回结果
* Created by Binary Wang on 2016-11-24. * Created by Binary Wang on 2016-11-24.
* </pre> * </pre>
* *
@ -20,96 +21,104 @@ import java.util.List;
public class WxPayRefundQueryResult extends WxPayBaseResult { public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 设备号 * 字段名设备号.
* device_info * 变量名device_info
* * 是否必填
* String(32) * 类型String(32)
* 013467007045764 * 示例值013467007045764
* 终端设备号 * 描述终端设备号
* </pre>
*/ */
@XStreamAlias("device_info") @XStreamAlias("device_info")
private String deviceInfo; private String deviceInfo;
/** /**
* <pre> * <pre>
* 微信订单号 * 字段名微信订单号.
* transaction_id * 变量名transaction_id
* * 是否必填
* String(32) * 类型String(32)
* 1217752501201407033233368018 * 示例值1217752501201407033233368018
* 微信订单号 * 描述微信订单号
* </pre>
*/ */
@XStreamAlias("transaction_id") @XStreamAlias("transaction_id")
private String transactionId; private String transactionId;
/** /**
* <pre> * <pre>
* 商户订单号 * 字段名商户订单号.
* out_trade_no * 变量名out_trade_no
* * 是否必填
* String(32) * 类型String(32)
* 1217752501201407033233368018 * 示例值1217752501201407033233368018
* 商户系统内部的订单号 * 描述商户系统内部的订单号
* </pre>
*/ */
@XStreamAlias("out_trade_no") @XStreamAlias("out_trade_no")
private String outTradeNo; private String outTradeNo;
/** /**
* <pre> * <pre>
* 订单金额 * 字段名订单金额.
* total_fee * 变量名total_fee
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 订单总金额单位为分只能为整数详见支付金额 * 描述订单总金额单位为分只能为整数详见支付金额
* </pre>
*/ */
@XStreamAlias("total_fee") @XStreamAlias("total_fee")
private Integer totalFee; private Integer totalFee;
/** /**
* <pre> * <pre>
* 应结订单金额 * 字段名应结订单金额.
* settlement_total_fee * 变量名settlement_total_fee
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 应结订单金额=订单金额-非充值代金券金额应结订单金额<=订单金额 * 描述应结订单金额=订单金额-非充值代金券金额应结订单金额<=订单金额
* </pre>
*/ */
@XStreamAlias("settlement_total_fee") @XStreamAlias("settlement_total_fee")
private Integer settlementTotalFee; private Integer settlementTotalFee;
/** /**
* <pre> * <pre>
* 货币种类 * 字段名货币种类.
* fee_type * 变量名fee_type
* * 是否必填
* String(8) * 类型String(8)
* CNY * 示例值CNY
* 订单金额货币类型符合ISO 4217标准的三位字母代码默认人民币CNY其他值列表详见货币类型 * 描述订单金额货币类型符合ISO 4217标准的三位字母代码默认人民币CNY其他值列表详见货币类型
* </pre>
*/ */
@XStreamAlias("fee_type") @XStreamAlias("fee_type")
private String feeType; private String feeType;
/** /**
* <pre> * <pre>
* 现金支付金额 * 字段名现金支付金额.
* cash_fee * 变量名cash_fee
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 现金支付金额单位为分只能为整数详见支付金额 * 描述现金支付金额单位为分只能为整数详见支付金额
* </pre>
*/ */
@XStreamAlias("cash_fee") @XStreamAlias("cash_fee")
private Integer cashFee; private Integer cashFee;
/** /**
* <pre> * <pre>
* 退款笔数 * 字段名退款笔数.
* refund_count * 变量名refund_count
* * 是否必填
* Int * 类型Int
* 1 * 示例值1
* 退款记录数 * 描述退款记录数
* </pre>
*/ */
@XStreamAlias("refund_count") @XStreamAlias("refund_count")
private Integer refundCount; private Integer refundCount;
@ -117,7 +126,7 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
private List<RefundRecord> refundRecords; private List<RefundRecord> refundRecords;
/** /**
* 组装生成退款记录属性的内容 * 组装生成退款记录属性的内容.
*/ */
public void composeRefundRecords() { public void composeRefundRecords() {
if (this.refundCount != null && this.refundCount > 0) { if (this.refundCount != null && this.refundCount > 0) {
@ -137,6 +146,7 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
refundRecord.setCouponRefundCount(this.getXmlValueAsInt("xml/coupon_refund_count_" + i)); refundRecord.setCouponRefundCount(this.getXmlValueAsInt("xml/coupon_refund_count_" + i));
refundRecord.setRefundStatus(this.getXmlValue("xml/refund_status_" + i)); refundRecord.setRefundStatus(this.getXmlValue("xml/refund_status_" + i));
refundRecord.setRefundRecvAccount(this.getXmlValue("xml/refund_recv_accout_" + i)); refundRecord.setRefundRecvAccount(this.getXmlValue("xml/refund_recv_accout_" + i));
refundRecord.setRefundSuccessTime(this.getXmlValue("xml/refund_success_time_" + i));
if (refundRecord.getCouponRefundCount() == null || refundRecord.getCouponRefundCount() == 0) { if (refundRecord.getCouponRefundCount() == null || refundRecord.getCouponRefundCount() == 0) {
continue; continue;
@ -151,6 +161,8 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
) )
); );
} }
refundRecord.setRefundCoupons(coupons);
} }
} }
@ -163,12 +175,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
public static class RefundRecord { public static class RefundRecord {
/** /**
* <pre> * <pre>
* 商户退款单号 * 字段名商户退款单号.
* out_refund_no_$n * 变量名out_refund_no_$n
* * 否必填
* String(32) * 类型String(32)
* 1217752501201407033233368018 * 示例值1217752501201407033233368018
* 商户退款单号 * 描述商户退款单号
* </pre> * </pre>
*/ */
@XStreamAlias("out_refund_no") @XStreamAlias("out_refund_no")
@ -176,12 +188,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 微信退款单号 * 字段名微信退款单号.
* refund_id_$n * 变量名refund_id_$n
* * 否必填
* String(28) * 类型String(28)
* 1217752501201407033233368018 * 示例值1217752501201407033233368018
* 微信退款单号 * 描述微信退款单号
* </pre> * </pre>
*/ */
@XStreamAlias("refund_id") @XStreamAlias("refund_id")
@ -189,12 +201,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款渠道 * 字段名退款渠道.
* refund_channel_$n * 变量名refund_channel_$n
* * 是否必填
* String(16) * 类型String(16)
* ORIGINAL * 示例值ORIGINAL
* ORIGINAL原路退款 BALANCE退回到余额 * 描述ORIGINAL原路退款 BALANCE退回到余额
* </pre> * </pre>
*/ */
@XStreamAlias("refund_channel") @XStreamAlias("refund_channel")
@ -202,12 +214,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 申请退款金额 * 字段名申请退款金额.
* refund_fee_$n * 变量名refund_fee_$n
* * 否必填
* Int * 类型Int
* 100 * 示例值100
* 退款总金额,单位为分,可以做部分退款 * 描述退款总金额,单位为分,可以做部分退款
* </pre> * </pre>
*/ */
@XStreamAlias("refund_fee") @XStreamAlias("refund_fee")
@ -215,12 +227,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款金额 * 字段名退款金额.
* settlement_refund_fee_$n * 变量名settlement_refund_fee_$n
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 退款金额=申请退款金额-非充值代金券退款金额退款金额<=申请退款金额 * 描述退款金额=申请退款金额-非充值代金券退款金额退款金额<=申请退款金额
* </pre> * </pre>
*/ */
@XStreamAlias("settlement_refund_fee") @XStreamAlias("settlement_refund_fee")
@ -228,12 +240,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款资金来源 * 字段名退款资金来源.
* refund_account * 变量名refund_account
* * 是否必填
* String(30) * 类型String(30)
* REFUND_SOURCE_RECHARGE_FUNDS * 示例值REFUND_SOURCE_RECHARGE_FUNDS
* REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户, REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款 * 描述REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户, REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
* </pre> * </pre>
*/ */
@XStreamAlias("refund_account") @XStreamAlias("refund_account")
@ -241,12 +253,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 代金券类型 * 字段名代金券类型.
* coupon_type_$n * 变量名coupon_type_$n
* * 是否必填
* Int * 类型Int
* CASH * 示例值CASH
* CASH--充值代金券 , NO_CASH---非充值代金券订单使用代金券时有返回取值CASHNO_CASH$n为下标,从0开始编号举例coupon_type_$0 * 描述CASH--充值代金券 , NO_CASH---非充值代金券订单使用代金券时有返回取值CASHNO_CASH$n为下标,从0开始编号举例coupon_type_$0
* </pre> * </pre>
*/ */
@XStreamAlias("coupon_type") @XStreamAlias("coupon_type")
@ -254,12 +266,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 代金券退款金额 * 字段名代金券退款金额.
* coupon_refund_fee_$n * 变量名coupon_refund_fee_$n
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 代金券退款金额<=退款金额退款金额-代金券或立减优惠退款金额为现金说明详见代金券或立减优惠 * 描述代金券退款金额<=退款金额退款金额-代金券或立减优惠退款金额为现金说明详见代金券或立减优惠
* </pre> * </pre>
*/ */
@XStreamAlias("coupon_refund_fee") @XStreamAlias("coupon_refund_fee")
@ -267,12 +279,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款代金券使用数量 * 字段名退款代金券使用数量.
* coupon_refund_count_$n * 变量名coupon_refund_count_$n
* * 是否必填
* Int * 类型Int
* 1 * 示例值1
* 退款代金券使用数量 ,$n为下标,从0开始编号 * 描述退款代金券使用数量 ,$n为下标,从0开始编号
* </pre> * </pre>
*/ */
@XStreamAlias("coupon_refund_count") @XStreamAlias("coupon_refund_count")
@ -282,12 +294,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款状态 * 字段名退款状态.
* refund_status_$n * 变量名refund_status_$n
* * 否必填
* String(16) * 类型String(16)
* SUCCESS * 示例值SUCCESS
* 退款状态 * 描述退款状态
* SUCCESS退款成功 * SUCCESS退款成功
* FAIL退款失败 * FAIL退款失败
* PROCESSING退款处理中 * PROCESSING退款处理中
@ -297,30 +309,44 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
*/ */
@XStreamAlias("refund_status") @XStreamAlias("refund_status")
private String refundStatus; private String refundStatus;
/** /**
* <pre> * <pre>
* 退款入账账户 * 字段名退款入账账户.
* refund_recv_accout_$n * 变量名refund_recv_accout_$n
* * 否必填
* String(64) * 类型String(64)
* 招商银行信用卡0403 * 示例值招商银行信用卡0403
* 取当前退款单的退款入账方1退回银行卡{银行名称}{卡类型}{卡尾号}2退回支付用户零钱:支付用户零钱 * 描述取当前退款单的退款入账方1退回银行卡{银行名称}{卡类型}{卡尾号}2退回支付用户零钱:支付用户零钱
* </pre> * </pre>
*/ */
@XStreamAlias("refund_recv_accout") @XStreamAlias("refund_recv_accout")
private String refundRecvAccount; private String refundRecvAccount;
/**
* <pre>
* 字段名退款成功时间.
* 变量名refund_success_time_$n
* 是否必填
* 类型String(20)
* 示例值2016-07-25 15:26:26
* 描述退款成功时间当退款状态为退款成功时有返回$n为下标从0开始编号
* </pre>
*/
@XStreamAlias("refund_success_time")
private String refundSuccessTime;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public static class RefundCoupon { public static class RefundCoupon {
/** /**
* <pre> * <pre>
* 退款代金券批次ID * 字段名退款代金券批次ID.
* coupon_refund_batch_id_$n_$m * 变量名coupon_refund_batch_id_$n_$m
* * 是否必填
* String(20) * 类型String(20)
* 100 * 示例值100
* 退款代金券批次ID ,$n为下标$m为下标从0开始编号 * 描述退款代金券批次ID ,$n为下标$m为下标从0开始编号
* </pre> * </pre>
* *
* @deprecated 貌似是被去掉了但不知是何时 * @deprecated 貌似是被去掉了但不知是何时
@ -330,12 +356,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 退款代金券ID * 字段名退款代金券ID.
* coupon_refund_id_$n_$m * 变量名coupon_refund_id_$n_$m
* * 是否必填
* String(20) * 类型String(20)
* 10000 * 示例值10000
* 退款代金券ID, $n为下标$m为下标从0开始编号 * 描述退款代金券ID, $n为下标$m为下标从0开始编号
* </pre> * </pre>
*/ */
@XStreamAlias("coupon_refund_id") @XStreamAlias("coupon_refund_id")
@ -343,12 +369,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
/** /**
* <pre> * <pre>
* 单个退款代金券支付金额 * 字段名单个退款代金券支付金额.
* coupon_refund_fee_$n_$m * 变量名coupon_refund_fee_$n_$m
* * 是否必填
* Int * 类型Int
* 100 * 示例值100
* 单个退款代金券支付金额, $n为下标$m为下标从0开始编号 * 描述单个退款代金券支付金额, $n为下标$m为下标从0开始编号
* </pre> * </pre>
*/ */
@XStreamAlias("coupon_refund_fee") @XStreamAlias("coupon_refund_fee")