Pārlūkot izejas kodu

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

master
Binary Wang pirms 7 gadiem
vecāks
revīzija
f7dab9267e
2 mainītis faili ar 223 papildinājumiem un 205 dzēšanām
  1. +64
    -72
      weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayRefundRequest.java
  2. +159
    -133
      weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRefundQueryResult.java

+ 64
- 72
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxPayRefundRequest.java Parādīt failu

@@ -14,13 +14,6 @@ import java.util.Arrays;
/**
* <pre>
* 微信支付-申请退款请求参数
* 注释中各行每个字段描述对应如下:
* <li>字段名
* <li>变量名
* <li>是否必填
* <li>类型
* <li>示例值
* <li>描述
* Created by Binary Wang on 2016-10-08.
* </pre>
*
@@ -34,53 +27,52 @@ import java.util.Arrays;
@XStreamAlias("xml")
public class WxPayRefundRequest extends WxPayBaseRequest {
private static final String[] REFUND_ACCOUNT = new String[]{
RefundAccountSource.RECHARGE_FUNDS,
RefundAccountSource.UNSETTLED_FUNDS
};
RefundAccountSource.RECHARGE_FUNDS, RefundAccountSource.UNSETTLED_FUNDS};

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



+ 159
- 133
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayRefundQueryResult.java Parādīt failu

@@ -8,6 +8,7 @@ import java.util.List;

/**
* <pre>
* 微信支付-退款查询返回结果
* Created by Binary Wang on 2016-11-24.
* </pre>
*
@@ -20,96 +21,104 @@ import java.util.List;
public class WxPayRefundQueryResult extends WxPayBaseResult {
/**
* <pre>
* 设备号
* device_info
* 否
* String(32)
* 013467007045764
* 终端设备号
* 字段名:设备号.
* 变量名:device_info
* 是否必填:否
* 类型:String(32)
* 示例值:013467007045764
* 描述:终端设备号
* </pre>
*/
@XStreamAlias("device_info")
private String deviceInfo;

/**
* <pre>
* 微信订单号
* transaction_id
* 是
* String(32)
* 1217752501201407033233368018
* 微信订单号
* 字段名:微信订单号.
* 变量名:transaction_id
* 是否必填:是
* 类型:String(32)
* 示例值:1217752501201407033233368018
* 描述:微信订单号
* </pre>
*/
@XStreamAlias("transaction_id")
private String transactionId;

/**
* <pre>
* 商户订单号
* out_trade_no
* 是
* String(32)
* 1217752501201407033233368018
* 商户系统内部的订单号
* 字段名:商户订单号.
* 变量名:out_trade_no
* 是否必填:是
* 类型:String(32)
* 示例值:1217752501201407033233368018
* 描述:商户系统内部的订单号
* </pre>
*/
@XStreamAlias("out_trade_no")
private String outTradeNo;

/**
* <pre>
* 订单金额
* total_fee
* 是
* Int
* 100
* 订单总金额,单位为分,只能为整数,详见支付金额
* 字段名:订单金额.
* 变量名:total_fee
* 是否必填:是
* 类型:Int
* 示例值:100
* 描述:订单总金额,单位为分,只能为整数,详见支付金额
* </pre>
*/
@XStreamAlias("total_fee")
private Integer totalFee;

/**
* <pre>
* 应结订单金额
* settlement_total_fee
* 否
* Int
* 100
* 应结订单金额=订单金额-非充值代金券金额,应结订单金额<=订单金额。
* 字段名:应结订单金额.
* 变量名:settlement_total_fee
* 是否必填:否
* 类型:Int
* 示例值:100
* 描述:应结订单金额=订单金额-非充值代金券金额,应结订单金额<=订单金额。
* </pre>
*/
@XStreamAlias("settlement_total_fee")
private Integer settlementTotalFee;

/**
* <pre>
* 货币种类
* fee_type
* 否
* String(8)
* CNY
* 订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
* 字段名:货币种类.
* 变量名:fee_type
* 是否必填:否
* 类型:String(8)
* 示例值:CNY
* 描述:订单金额货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
* </pre>
*/
@XStreamAlias("fee_type")
private String feeType;

/**
* <pre>
* 现金支付金额
* cash_fee
* 是
* Int
* 100
* 现金支付金额,单位为分,只能为整数,详见支付金额
* 字段名:现金支付金额.
* 变量名:cash_fee
* 是否必填:是
* 类型:Int
* 示例值:100
* 描述:现金支付金额,单位为分,只能为整数,详见支付金额
* </pre>
*/
@XStreamAlias("cash_fee")
private Integer cashFee;

/**
* <pre>
* 退款笔数
* refund_count
* 是
* Int
* 1
* 退款记录数
* 字段名:退款笔数.
* 变量名:refund_count
* 是否必填:是
* 类型:Int
* 示例值:1
* 描述:退款记录数
* </pre>
*/
@XStreamAlias("refund_count")
private Integer refundCount;
@@ -117,7 +126,7 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
private List<RefundRecord> refundRecords;

/**
* 组装生成退款记录属性的内容
* 组装生成退款记录属性的内容.
*/
public void composeRefundRecords() {
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.setRefundStatus(this.getXmlValue("xml/refund_status_" + 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) {
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 {
/**
* <pre>
* 商户退款单号
* out_refund_no_$n
* 是
* String(32)
* 1217752501201407033233368018
* 商户退款单号
* 字段名:商户退款单号.
* 变量名:out_refund_no_$n
* 是否必填:是
* 类型:String(32)
* 示例值:1217752501201407033233368018
* 描述:商户退款单号
* </pre>
*/
@XStreamAlias("out_refund_no")
@@ -176,12 +188,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 微信退款单号
* refund_id_$n
* 是
* String(28)
* 1217752501201407033233368018
* 微信退款单号
* 字段名:微信退款单号.
* 变量名:refund_id_$n
* 是否必填:是
* 类型:String(28)
* 示例值:1217752501201407033233368018
* 描述:微信退款单号
* </pre>
*/
@XStreamAlias("refund_id")
@@ -189,12 +201,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款渠道
* refund_channel_$n
* 否
* String(16)
* ORIGINAL
* ORIGINAL—原路退款 BALANCE—退回到余额
* 字段名:退款渠道.
* 变量名:refund_channel_$n
* 是否必填:
* 类型:String(16)
* 示例值:ORIGINAL
* 描述:ORIGINAL—原路退款 BALANCE—退回到余额
* </pre>
*/
@XStreamAlias("refund_channel")
@@ -202,12 +214,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 申请退款金额
* refund_fee_$n
* 是
* Int
* 100
* 退款总金额,单位为分,可以做部分退款
* 字段名:申请退款金额.
* 变量名:refund_fee_$n
* 是否必填:是
* 类型:Int
* 示例值:100
* 描述:退款总金额,单位为分,可以做部分退款
* </pre>
*/
@XStreamAlias("refund_fee")
@@ -215,12 +227,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款金额
* settlement_refund_fee_$n
* 否
* Int
* 100
* 退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额
* 字段名:退款金额.
* 变量名:settlement_refund_fee_$n
* 是否必填:
* 类型:Int
* 示例值:100
* 描述:退款金额=申请退款金额-非充值代金券退款金额,退款金额<=申请退款金额
* </pre>
*/
@XStreamAlias("settlement_refund_fee")
@@ -228,12 +240,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款资金来源
* refund_account
* 否
* String(30)
* REFUND_SOURCE_RECHARGE_FUNDS
* REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户, REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
* 字段名:退款资金来源.
* 变量名:refund_account
* 是否必填:
* 类型:String(30)
* 示例值:REFUND_SOURCE_RECHARGE_FUNDS
* 描述:REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款/基本账户, REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款
* </pre>
*/
@XStreamAlias("refund_account")
@@ -241,12 +253,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 代金券类型
* coupon_type_$n
* 否
* Int
* CASH
* CASH--充值代金券 , NO_CASH---非充值代金券。订单使用代金券时有返回(取值:CASH、NO_CASH)。$n为下标,从0开始编号,举例:coupon_type_$0
* 字段名:代金券类型.
* 变量名:coupon_type_$n
* 是否必填:
* 类型:Int
* 示例值:CASH
* 描述:CASH--充值代金券 , NO_CASH---非充值代金券。订单使用代金券时有返回(取值:CASH、NO_CASH)。$n为下标,从0开始编号,举例:coupon_type_$0
* </pre>
*/
@XStreamAlias("coupon_type")
@@ -254,12 +266,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 代金券退款金额
* coupon_refund_fee_$n
* 否
* Int
* 100
* 代金券退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见代金券或立减优惠
* 字段名:代金券退款金额.
* 变量名:coupon_refund_fee_$n
* 是否必填:
* 类型:Int
* 示例值:100
* 描述:代金券退款金额<=退款金额,退款金额-代金券或立减优惠退款金额为现金,说明详见代金券或立减优惠
* </pre>
*/
@XStreamAlias("coupon_refund_fee")
@@ -267,12 +279,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款代金券使用数量
* coupon_refund_count_$n
* 否
* Int
* 1
* 退款代金券使用数量 ,$n为下标,从0开始编号
* 字段名:退款代金券使用数量.
* 变量名:coupon_refund_count_$n
* 是否必填:
* 类型:Int
* 示例值:1
* 描述:退款代金券使用数量 ,$n为下标,从0开始编号
* </pre>
*/
@XStreamAlias("coupon_refund_count")
@@ -282,12 +294,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款状态
* refund_status_$n
* 是
* String(16)
* SUCCESS
* 退款状态:
* 字段名:退款状态.
* 变量名:refund_status_$n
* 是否必填:是
* 类型:String(16)
* 示例值:SUCCESS
* 描述:退款状态:
* SUCCESS—退款成功,
* FAIL—退款失败,
* PROCESSING—退款处理中,
@@ -297,30 +309,44 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {
*/
@XStreamAlias("refund_status")
private String refundStatus;

/**
* <pre>
* 退款入账账户
* refund_recv_accout_$n
* 是
* String(64)
* 招商银行信用卡0403
* 取当前退款单的退款入账方,1)退回银行卡:{银行名称}{卡类型}{卡尾号},2)退回支付用户零钱:支付用户零钱
* 字段名:退款入账账户.
* 变量名:refund_recv_accout_$n
* 是否必填:是
* 类型:String(64)
* 示例值:招商银行信用卡0403
* 描述:取当前退款单的退款入账方,1)退回银行卡:{银行名称}{卡类型}{卡尾号},2)退回支付用户零钱:支付用户零钱
* </pre>
*/
@XStreamAlias("refund_recv_accout")
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
@NoArgsConstructor
public static class RefundCoupon {
/**
* <pre>
* 退款代金券批次ID
* coupon_refund_batch_id_$n_$m
* 否
* String(20)
* 100
* 退款代金券批次ID ,$n为下标,$m为下标,从0开始编号
* 字段名:退款代金券批次ID.
* 变量名:coupon_refund_batch_id_$n_$m
* 是否必填:
* 类型:String(20)
* 示例值:100
* 描述:退款代金券批次ID ,$n为下标,$m为下标,从0开始编号
* </pre>
*
* @deprecated 貌似是被去掉了,但不知是何时!
@@ -330,12 +356,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 退款代金券ID
* coupon_refund_id_$n_$m
* 否
* String(20)
* 10000
* 退款代金券ID, $n为下标,$m为下标,从0开始编号
* 字段名:退款代金券ID.
* 变量名:coupon_refund_id_$n_$m
* 是否必填:
* 类型:String(20)
* 示例值:10000
* 描述:退款代金券ID, $n为下标,$m为下标,从0开始编号
* </pre>
*/
@XStreamAlias("coupon_refund_id")
@@ -343,12 +369,12 @@ public class WxPayRefundQueryResult extends WxPayBaseResult {

/**
* <pre>
* 单个退款代金券支付金额
* coupon_refund_fee_$n_$m
* 否
* Int
* 100
* 单个退款代金券支付金额, $n为下标,$m为下标,从0开始编号
* 字段名:单个退款代金券支付金额.
* 变量名:coupon_refund_fee_$n_$m
* 是否必填:
* 类型:Int
* 示例值:100
* 描述:单个退款代金券支付金额, $n为下标,$m为下标,从0开始编号
* </pre>
*/
@XStreamAlias("coupon_refund_fee")


Notiek ielāde…
Atcelt
Saglabāt