From 945516515cf8ce9357daded93415d490767d3ec0 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 27 Jul 2017 17:19:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BC=98=E5=8C=96=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E4=BC=81=E4=B8=9A=E4=BB=98=E6=AC=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/bean/request/WxEntPayRequest.java | 258 +++++++++++++----- .../impl/WxPayServiceAbstractImplTest.java | 10 +- 2 files changed, 200 insertions(+), 68 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxEntPayRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxEntPayRequest.java index fd43fb1a..7897ad02 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/request/WxEntPayRequest.java +++ b/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; /** *
  * 企业付款请求对象
- * 注释中各行每个字段描述对应如下:
- * 
  • 字段名 - *
  • 变量名 - *
  • 是否必填 - *
  • 类型 - *
  • 示例值 - *
  • 描述 *
  • * Created by Binary Wang on 2016/10/02. * @@ -22,12 +16,12 @@ import me.chanjar.weixin.common.util.ToStringUtils; public class WxEntPayRequest extends WxPayBaseRequest { /** *
    -   * 公众账号appid
    -   * mch_appid
    -   * 是
    -   * wx8888888888888888
    -   * String
    -   * 微信分配的公众账号ID(企业号corpid即为此appId)
    +   * 字段名:公众账号appid
    +   * 变量名:mch_appid
    +   * 是否必填:是
    +   * 示例值:wx8888888888888888
    +   * 类型:String
    +   * 描述:微信分配的公众账号ID(企业号corpid即为此appId)
        * 
    */ @XStreamAlias("mch_appid") @@ -35,12 +29,12 @@ public class WxEntPayRequest extends WxPayBaseRequest { /** *
    -   *  商户号
    -   *  mchid
    -   *  是
    -   *  1900000109
    -   *  String(32)
    -   *  微信支付分配的商户号
    +   * 字段名:商户号
    +   * 变量名:mchid
    +   * 是否必填:是
    +   * 示例值:1900000109
    +   * 类型:String(32)
    +   * 描述:微信支付分配的商户号
        * 
    */ @XStreamAlias("mchid") @@ -48,12 +42,12 @@ public class WxEntPayRequest extends WxPayBaseRequest { /** *
    -   * 设备号
    -   * device_info
    -   * 否
    -   * 13467007045764
    -   * String(32)
    -   * 微信支付分配的终端设备号
    +   * 字段名:设备号
    +   * 变量名:device_info
    +   * 是否必填:否
    +   * 示例值:13467007045764
    +   * 类型:String(32)
    +   * 描述:微信支付分配的终端设备号
        * 
    */ @XStreamAlias("device_info") @@ -61,53 +55,56 @@ public class WxEntPayRequest extends WxPayBaseRequest { /** *
    -   * 商户订单号
    -   * partner_trade_no
    -   * 是
    -   * 10000098201411111234567890
    -   * String
    -   * 商户订单号
    +   * 字段名:商户订单号
    +   * 变量名:partner_trade_no
    +   * 是否必填:是
    +   * 示例值:10000098201411111234567890
    +   * 类型:String
    +   * 描述:商户订单号
        * 
    */ + @Required @XStreamAlias("partner_trade_no") private String partnerTradeNo; /** *
    -   * 需保持唯一性 用户openid
    -   * openid
    -   * 是
    -   * oxTWIuGaIt6gTKsQRLau2M0yL16E
    -   * String
    -   * 商户appid下,某用户的openid
    +   * 字段名:需保持唯一性 用户openid
    +   * 变量名:openid
    +   * 是否必填:是
    +   * 示例值:oxTWIuGaIt6gTKsQRLau2M0yL16E
    +   * 类型:String
    +   * 描述:商户appid下,某用户的openid
        * 
    */ + @Required @XStreamAlias("openid") private String openid; /** *
    -   * 校验用户姓名选项
    -   * check_name
    -   * 是
    -   * OPTION_CHECK
    -   * String
    -   * NO_CHECK:不校验真实姓名 
    +   * 字段名:校验用户姓名选项
    +   * 变量名:check_name
    +   * 是否必填:是
    +   * 示例值:OPTION_CHECK
    +   * 类型:String
    +   * 描述:NO_CHECK:不校验真实姓名 
        * FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账) 
        * OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
        * 
    */ + @Required @XStreamAlias("check_name") private String checkName; /** *
    -   * 收款用户姓名
    -   * re_user_name
    -   * 可选
    -   * 马花花
    -   * String
    -   * 收款用户真实姓名。
    +   * 字段名:收款用户姓名
    +   * 变量名:re_user_name
    +   * 是否必填:可选
    +   * 示例值:马花花
    +   * 类型:String
    +   * 描述:收款用户真实姓名。
        * 如果check_name设置为FORCE_CHECK或OPTION_CHECK,  则必填用户真实姓名
        * 
    */ @@ -116,43 +113,71 @@ public class WxEntPayRequest extends WxPayBaseRequest { /** *
    -   * 金额
    -   * amount
    -   * 是
    -   * 10099
    -   * int
    -   * 企业付款金额, 单位为分
    +   * 字段名:金额
    +   * 变量名:amount
    +   * 是否必填:是
    +   * 示例值:10099
    +   * 类型:int
    +   * 描述:企业付款金额, 单位为分
        * 
    */ + @Required @XStreamAlias("amount") private Integer amount; /** *
    -   * 企业付款描述信息
    -   * desc
    -   * 是
    -   * 理赔
    -   * String
    -   * 企业付款操作说明信息。必填。
    +   * 字段名:企业付款描述信息
    +   * 变量名:desc
    +   * 是否必填:是
    +   * 示例值:理赔
    +   * 类型:String
    +   * 描述:企业付款操作说明信息。必填。
        * 
    */ + @Required @XStreamAlias("desc") private String description; /** *
    -   * Ip地址
    -   * spbill_create_ip
    -   * 是
    -   * 192.168.0.1
    -   * String(32)
    -   * 调用接口的机器Ip地址
    +   * 字段名:Ip地址
    +   * 变量名:spbill_create_ip
    +   * 是否必填:是
    +   * 示例值:192.168.0.1
    +   * 类型:String(32)
    +   * 描述:调用接口的机器Ip地址
        * 
    */ + @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; + } + } } diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImplTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImplTest.java index bbf444d9..9b57d77b 100644 --- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/WxPayServiceAbstractImplTest.java +++ b/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()); }