完善优化调试企业付款接口

This commit is contained in:
Binary Wang 2017-07-27 17:19:19 +08:00 committed by Binary Wang
parent ab5f573ca0
commit bceabfb77e
2 changed files with 200 additions and 68 deletions

View File

@ -1,18 +1,12 @@
package com.github.binarywang.wxpay.bean.request; package com.github.binarywang.wxpay.bean.request;
import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAlias;
import me.chanjar.weixin.common.annotation.Required;
import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.common.util.ToStringUtils;
/** /**
* <pre> * <pre>
* 企业付款请求对象 * 企业付款请求对象
* 注释中各行每个字段描述对应如下
* <li>字段名
* <li>变量名
* <li>是否必填
* <li>类型
* <li>示例值
* <li>描述
* </pre> * </pre>
* Created by Binary Wang on 2016/10/02. * Created by Binary Wang on 2016/10/02.
* *
@ -22,12 +16,12 @@ import me.chanjar.weixin.common.util.ToStringUtils;
public class WxEntPayRequest extends WxPayBaseRequest { public class WxEntPayRequest extends WxPayBaseRequest {
/** /**
* <pre> * <pre>
* 公众账号appid * 字段名公众账号appid
* mch_appid * 变量名mch_appid
* * 否必填
* wx8888888888888888 * 示例值wx8888888888888888
* String * 类型String
* 微信分配的公众账号ID企业号corpid即为此appId * 描述微信分配的公众账号ID企业号corpid即为此appId
* </pre> * </pre>
*/ */
@XStreamAlias("mch_appid") @XStreamAlias("mch_appid")
@ -35,12 +29,12 @@ public class WxEntPayRequest extends WxPayBaseRequest {
/** /**
* <pre> * <pre>
* 商户号 * 字段名商户号
* mchid * 变量名mchid
* * 是否必填
* 1900000109 * 示例值1900000109
* String(32) * 类型String(32)
* 微信支付分配的商户号 * 描述微信支付分配的商户号
* </pre> * </pre>
*/ */
@XStreamAlias("mchid") @XStreamAlias("mchid")
@ -48,12 +42,12 @@ public class WxEntPayRequest extends WxPayBaseRequest {
/** /**
* <pre> * <pre>
* 设备号 * 字段名设备号
* device_info * 变量名device_info
* * 是否必填
* 13467007045764 * 示例值13467007045764
* String(32) * 类型String(32)
* 微信支付分配的终端设备号 * 描述微信支付分配的终端设备号
* </pre> * </pre>
*/ */
@XStreamAlias("device_info") @XStreamAlias("device_info")
@ -61,53 +55,56 @@ public class WxEntPayRequest extends WxPayBaseRequest {
/** /**
* <pre> * <pre>
* 商户订单号 * 字段名商户订单号
* partner_trade_no * 变量名partner_trade_no
* * 否必填
* 10000098201411111234567890 * 示例值10000098201411111234567890
* String * 类型String
* 商户订单号 * 描述商户订单号
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("partner_trade_no") @XStreamAlias("partner_trade_no")
private String partnerTradeNo; private String partnerTradeNo;
/** /**
* <pre> * <pre>
* 需保持唯一性 用户openid * 字段名需保持唯一性 用户openid
* openid * 变量名openid
* * 否必填
* oxTWIuGaIt6gTKsQRLau2M0yL16E * 示例值oxTWIuGaIt6gTKsQRLau2M0yL16E
* String * 类型String
* 商户appid下某用户的openid * 描述商户appid下某用户的openid
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("openid") @XStreamAlias("openid")
private String openid; private String openid;
/** /**
* <pre> * <pre>
* 校验用户姓名选项 * 字段名校验用户姓名选项
* check_name * 变量名check_name
* * 否必填
* OPTION_CHECK * 示例值OPTION_CHECK
* String * 类型String
* NO_CHECK不校验真实姓名  * 描述NO_CHECK不校验真实姓名 
* FORCE_CHECK强校验真实姓名未实名认证的用户会校验失败无法转账  * FORCE_CHECK强校验真实姓名未实名认证的用户会校验失败无法转账 
* OPTION_CHECK针对已实名认证的用户才校验真实姓名未实名认证用户不校验可以转账成功 * OPTION_CHECK针对已实名认证的用户才校验真实姓名未实名认证用户不校验可以转账成功
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("check_name") @XStreamAlias("check_name")
private String checkName; private String checkName;
/** /**
* <pre> * <pre>
* 收款用户姓名 * 字段名收款用户姓名
* re_user_name * 变量名re_user_name
* 可选 * 是否必填可选
* 马花花 * 示例值马花花
* String * 类型String
* 收款用户真实姓名 * 描述收款用户真实姓名
* 如果check_name设置为FORCE_CHECK或OPTION_CHECK 则必填用户真实姓名 * 如果check_name设置为FORCE_CHECK或OPTION_CHECK 则必填用户真实姓名
* </pre> * </pre>
*/ */
@ -116,43 +113,71 @@ public class WxEntPayRequest extends WxPayBaseRequest {
/** /**
* <pre> * <pre>
* 金额 * 字段名金额
* amount * 变量名amount
* * 否必填
* 10099 * 示例值10099
* int * 类型int
* 企业付款金额 单位为分 * 描述企业付款金额 单位为分
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("amount") @XStreamAlias("amount")
private Integer amount; private Integer amount;
/** /**
* <pre> * <pre>
* 企业付款描述信息 * 字段名企业付款描述信息
* desc * 变量名desc
* * 否必填
* 理赔 * 示例值理赔
* String * 类型String
* 企业付款操作说明信息必填 * 描述企业付款操作说明信息必填
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("desc") @XStreamAlias("desc")
private String description; private String description;
/** /**
* <pre> * <pre>
* Ip地址 * 字段名Ip地址
* spbill_create_ip * 变量名spbill_create_ip
* * 否必填
* 192.168.0.1 * 示例值192.168.0.1
* String(32) * 类型String(32)
* 调用接口的机器Ip地址 * 描述调用接口的机器Ip地址
* </pre> * </pre>
*/ */
@Required
@XStreamAlias("spbill_create_ip") @XStreamAlias("spbill_create_ip")
private String spbillCreateIp; private String spbillCreateIp;
public WxEntPayRequest() {
}
private WxEntPayRequest(Builder builder) {
setAppid(builder.appid);
setMchId(builder.mchId);
setSubAppId(builder.subAppId);
setSubMchId(builder.subMchId);
setNonceStr(builder.nonceStr);
setSign(builder.sign);
mchAppid = builder.mchAppid;
setMchId(builder.mchId);
setDeviceInfo(builder.deviceInfo);
setPartnerTradeNo(builder.partnerTradeNo);
setOpenid(builder.openid);
setCheckName(builder.checkName);
setReUserName(builder.reUserName);
setAmount(builder.amount);
setDescription(builder.description);
setSpbillCreateIp(builder.spbillCreateIp);
}
public static Builder newBuilder() {
return new Builder();
}
@Override @Override
protected void checkConstraints() { protected void checkConstraints() {
@ -248,4 +273,103 @@ public class WxEntPayRequest extends WxPayBaseRequest {
return ToStringUtils.toSimpleString(this); return ToStringUtils.toSimpleString(this);
} }
public static final class Builder {
private String appid;
private String mchId;
private String deviceInfo;
private String partnerTradeNo;
private String openid;
private String checkName;
private String reUserName;
private Integer amount;
private String description;
private String spbillCreateIp;
private String subAppId;
private String subMchId;
private String nonceStr;
private String sign;
private String mchAppid;
private Builder() {
}
public Builder appid(String appid) {
this.appid = appid;
return this;
}
public Builder mchId(String mchId) {
this.mchId = mchId;
return this;
}
public Builder deviceInfo(String deviceInfo) {
this.deviceInfo = deviceInfo;
return this;
}
public Builder partnerTradeNo(String partnerTradeNo) {
this.partnerTradeNo = partnerTradeNo;
return this;
}
public Builder openid(String openid) {
this.openid = openid;
return this;
}
public Builder checkName(String checkName) {
this.checkName = checkName;
return this;
}
public Builder reUserName(String reUserName) {
this.reUserName = reUserName;
return this;
}
public Builder amount(Integer amount) {
this.amount = amount;
return this;
}
public Builder description(String description) {
this.description = description;
return this;
}
public Builder spbillCreateIp(String spbillCreateIp) {
this.spbillCreateIp = spbillCreateIp;
return this;
}
public WxEntPayRequest build() {
return new WxEntPayRequest(this);
}
public Builder subAppId(String subAppId) {
this.subAppId = subAppId;
return this;
}
public Builder subMchId(String subMchId) {
this.subMchId = subMchId;
return this;
}
public Builder nonceStr(String nonceStr) {
this.nonceStr = nonceStr;
return this;
}
public Builder sign(String sign) {
this.sign = sign;
return this;
}
public Builder mchAppid(String mchAppid) {
this.mchAppid = mchAppid;
return this;
}
}
} }

View File

@ -170,7 +170,15 @@ public class WxPayServiceAbstractImplTest {
*/ */
@Test @Test
public void testEntPay() throws WxPayException { public void testEntPay() throws WxPayException {
WxEntPayRequest request = new WxEntPayRequest(); WxEntPayRequest request = WxEntPayRequest.newBuilder()
.partnerTradeNo("Eb6Aep7uVTdbkJqrP4")
.openid("ojOQA0y9o-Eb6Aep7uVTdbkJqrP4")
.amount(1)
.spbillCreateIp("10.10.10.10")
.checkName("NO_CHECK")
.description("描述信息")
.build();
this.logger.info(this.payService.entPay(request).toString()); this.logger.info(this.payService.entPay(request).toString());
} }