Просмотр исходного кода

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

master
Binary Wang 7 лет назад
Родитель
Сommit
945516515c
2 измененных файлов: 200 добавлений и 68 удалений
  1. +191
    -67
      weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxEntPayRequest.java
  2. +9
    -1
      weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImplTest.java

+ 191
- 67
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxEntPayRequest.java Просмотреть файл

@@ -1,18 +1,12 @@
package com.github.binarywang.wxpay.bean.request;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import me.chanjar.weixin.common.annotation.Required;
import me.chanjar.weixin.common.util.ToStringUtils;

/**
* <pre>
* 企业付款请求对象
* 注释中各行每个字段描述对应如下:
* <li>字段名
* <li>变量名
* <li>是否必填
* <li>类型
* <li>示例值
* <li>描述
* </pre>
* Created by Binary Wang on 2016/10/02.
*
@@ -22,12 +16,12 @@ import me.chanjar.weixin.common.util.ToStringUtils;
public class WxEntPayRequest extends WxPayBaseRequest {
/**
* <pre>
* 公众账号appid
* mch_appid
* 是
* wx8888888888888888
* String
* 微信分配的公众账号ID(企业号corpid即为此appId)
* 字段名:公众账号appid
* 变量名:mch_appid
* 是否必填:是
* 示例值:wx8888888888888888
* 类型:String
* 描述:微信分配的公众账号ID(企业号corpid即为此appId)
* </pre>
*/
@XStreamAlias("mch_appid")
@@ -35,12 +29,12 @@ public class WxEntPayRequest extends WxPayBaseRequest {

/**
* <pre>
* 商户号
* mchid
*
* 1900000109
* String(32)
* 微信支付分配的商户号
* 字段名:商户号
* 变量名:mchid
* 是否必填:
* 示例值:1900000109
* 类型:String(32)
* 描述:微信支付分配的商户号
* </pre>
*/
@XStreamAlias("mchid")
@@ -48,12 +42,12 @@ public class WxEntPayRequest extends WxPayBaseRequest {

/**
* <pre>
* 设备号
* device_info
* 否
* 13467007045764
* String(32)
* 微信支付分配的终端设备号
* 字段名:设备号
* 变量名:device_info
* 是否必填:
* 示例值:13467007045764
* 类型:String(32)
* 描述:微信支付分配的终端设备号
* </pre>
*/
@XStreamAlias("device_info")
@@ -61,53 +55,56 @@ public class WxEntPayRequest extends WxPayBaseRequest {

/**
* <pre>
* 商户订单号
* partner_trade_no
* 是
* 10000098201411111234567890
* String
* 商户订单号
* 字段名:商户订单号
* 变量名:partner_trade_no
* 是否必填:是
* 示例值:10000098201411111234567890
* 类型:String
* 描述:商户订单号
* </pre>
*/
@Required
@XStreamAlias("partner_trade_no")
private String partnerTradeNo;

/**
* <pre>
* 需保持唯一性 用户openid
* openid
* 是
* oxTWIuGaIt6gTKsQRLau2M0yL16E
* String
* 商户appid下,某用户的openid
* 字段名:需保持唯一性 用户openid
* 变量名:openid
* 是否必填:是
* 示例值:oxTWIuGaIt6gTKsQRLau2M0yL16E
* 类型:String
* 描述:商户appid下,某用户的openid
* </pre>
*/
@Required
@XStreamAlias("openid")
private String openid;

/**
* <pre>
* 校验用户姓名选项
* check_name
* 是
* OPTION_CHECK
* String
* NO_CHECK:不校验真实姓名 
* 字段名:校验用户姓名选项
* 变量名:check_name
* 是否必填:是
* 示例值:OPTION_CHECK
* 类型:String
* 描述:NO_CHECK:不校验真实姓名 
* FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账) 
* OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
* </pre>
*/
@Required
@XStreamAlias("check_name")
private String checkName;

/**
* <pre>
* 收款用户姓名
* re_user_name
* 可选
* 马花花
* String
* 收款用户真实姓名。
* 字段名:收款用户姓名
* 变量名:re_user_name
* 是否必填:可选
* 示例值:马花花
* 类型:String
* 描述:收款用户真实姓名。
* 如果check_name设置为FORCE_CHECK或OPTION_CHECK, 则必填用户真实姓名
* </pre>
*/
@@ -116,43 +113,71 @@ public class WxEntPayRequest extends WxPayBaseRequest {

/**
* <pre>
* 金额
* amount
* 是
* 10099
* int
* 企业付款金额, 单位为分
* 字段名:金额
* 变量名:amount
* 是否必填:是
* 示例值:10099
* 类型:int
* 描述:企业付款金额, 单位为分
* </pre>
*/
@Required
@XStreamAlias("amount")
private Integer amount;

/**
* <pre>
* 企业付款描述信息
* desc
* 是
* 理赔
* String
* 企业付款操作说明信息。必填。
* 字段名:企业付款描述信息
* 变量名:desc
* 是否必填:是
* 示例值:理赔
* 类型:String
* 描述:企业付款操作说明信息。必填。
* </pre>
*/
@Required
@XStreamAlias("desc")
private String description;

/**
* <pre>
* Ip地址
* spbill_create_ip
* 是
* 192.168.0.1
* String(32)
* 调用接口的机器Ip地址
* 字段名:Ip地址
* 变量名:spbill_create_ip
* 是否必填:是
* 示例值:192.168.0.1
* 类型:String(32)
* 描述:调用接口的机器Ip地址
* </pre>
*/
@Required
@XStreamAlias("spbill_create_ip")
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
protected void checkConstraints() {
@@ -248,4 +273,103 @@ public class WxEntPayRequest extends WxPayBaseRequest {
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;
}
}
}

+ 9
- 1
weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImplTest.java Просмотреть файл

@@ -170,7 +170,15 @@ public class WxPayServiceAbstractImplTest {
*/
@Test
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());
}



Загрузка…
Отмена
Сохранить