微信支付去掉统一下单接口请求时关于openid和sub_openid的逻辑判断,由调用者自己控制相关参数

This commit is contained in:
Binary Wang 2018-01-17 15:16:10 +08:00
parent edaaa48b8d
commit 48fb5e9e5a

View File

@ -10,7 +10,7 @@ import org.apache.commons.lang3.StringUtils;
/** /**
* <pre> * <pre>
* 统一下单请求参数对象 * 统一下单请求参数对象.
* 参考文档https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 * 参考文档https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
* Created by Binary Wang on 2016/9/25. * Created by Binary Wang on 2016/9/25.
* </pre> * </pre>
@ -24,9 +24,11 @@ import org.apache.commons.lang3.StringUtils;
@AllArgsConstructor @AllArgsConstructor
@XStreamAlias("xml") @XStreamAlias("xml")
public class WxPayUnifiedOrderRequest extends BaseWxPayRequest { public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
private static final long serialVersionUID = 4611350167813931828L;
/** /**
* <pre> * <pre>
* 字段名设备号 * 字段名设备号.
* 变量名device_info * 变量名device_info
* 是否必填 * 是否必填
* 类型String(32) * 类型String(32)
@ -39,7 +41,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名商品描述 * 字段名商品描述.
* 变量名body * 变量名body
* 是否必填 * 是否必填
* 类型String(128) * 类型String(128)
@ -53,7 +55,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名商品详情 * 字段名商品详情.
* 变量名detail * 变量名detail
* 是否必填 * 是否必填
* 类型String(6000) * 类型String(6000)
@ -94,7 +96,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名附加数据 * 字段名附加数据.
* 变量名attach * 变量名attach
* 是否必填 * 是否必填
* 类型String(127) * 类型String(127)
@ -107,7 +109,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名商户订单号 * 字段名商户订单号.
* 变量名out_trade_no * 变量名out_trade_no
* 是否必填 * 是否必填
* 类型String(32) * 类型String(32)
@ -121,7 +123,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名货币类型 * 字段名货币类型.
* 变量名fee_type * 变量名fee_type
* 是否必填 * 是否必填
* 类型String(16) * 类型String(16)
@ -134,7 +136,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名总金额 * 字段名总金额.
* 变量名total_fee * 变量名total_fee
* 是否必填 * 是否必填
* 类型Int * 类型Int
@ -148,7 +150,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名终端IP * 字段名终端IP.
* 变量名spbill_create_ip * 变量名spbill_create_ip
* 是否必填 * 是否必填
* 类型String(16) * 类型String(16)
@ -162,7 +164,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名交易起始时间 * 字段名交易起始时间.
* 变量名time_start * 变量名time_start
* 是否必填 * 是否必填
* 类型String(14) * 类型String(14)
@ -175,7 +177,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名交易结束时间 * 字段名交易结束时间.
* 变量名time_expire * 变量名time_expire
* 是否必填 * 是否必填
* 类型String(14) * 类型String(14)
@ -189,7 +191,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名商品标记 * 字段名商品标记.
* 变量名goods_tag * 变量名goods_tag
* 是否必填 * 是否必填
* 类型String(32) * 类型String(32)
@ -202,7 +204,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名通知地址 * 字段名通知地址.
* 变量名notify_url * 变量名notify_url
* 是否必填 * 是否必填
* 类型String(256) * 类型String(256)
@ -216,7 +218,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名交易类型 * 字段名交易类型.
* 变量名trade_type * 变量名trade_type
* 是否必填 * 是否必填
* 类型String(16) * 类型String(16)
@ -231,7 +233,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名商品Id * 字段名商品Id.
* 变量名product_id * 变量名product_id
* 是否必填 * 是否必填
* 类型String(32) * 类型String(32)
@ -244,7 +246,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名指定支付方式 * 字段名指定支付方式.
* 变量名limit_pay * 变量名limit_pay
* 是否必填 * 是否必填
* 类型String(32) * 类型String(32)
@ -257,7 +259,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名用户标识 * 字段名用户标识.
* 变量名openid * 变量名openid
* 是否必填 * 是否必填
* 类型String(128) * 类型String(128)
@ -272,7 +274,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名用户子标识 * 字段名用户子标识.
* 变量名sub_openid * 变量名sub_openid
* 是否必填 * 是否必填
* 类型String(128) * 类型String(128)
@ -287,7 +289,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
/** /**
* <pre> * <pre>
* 字段名场景信息 * 字段名场景信息.
* 变量名scene_info * 变量名scene_info
* 是否必填对H5支付来说是必填 * 是否必填对H5支付来说是必填
* 类型String(256) * 类型String(256)
@ -306,7 +308,7 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
private String sceneInfo; private String sceneInfo;
/** /**
* <pre> * <pre>
* 字段名浏览器指纹 * 字段名浏览器指纹.
* 变量名fingerprint * 变量名fingerprint
* 是否必填 * 是否必填
* 详细参考 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_7&index=6 * 详细参考 https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_7&index=6
@ -316,14 +318,14 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
private String fingerprint; private String fingerprint;
/** /**
* 如果配置中已经设置可以不设置值 * 如果配置中已经设置可以不设置值.
*/ */
public void setNotifyURL(String notifyURL) { public void setNotifyURL(String notifyURL) {
this.notifyURL = notifyURL; this.notifyURL = notifyURL;
} }
/** /**
* 如果配置中已经设置可以不设置值 * 如果配置中已经设置可以不设置值.
* *
* @param tradeType 交易类型 * @param tradeType 交易类型
*/ */
@ -333,16 +335,6 @@ public class WxPayUnifiedOrderRequest extends BaseWxPayRequest {
@Override @Override
protected void checkConstraints() throws WxPayException { protected void checkConstraints() throws WxPayException {
if (TradeType.JSAPI.equals(this.getTradeType())) {
if (StringUtils.isBlank(this.getSubAppId()) && StringUtils.isBlank(this.getOpenid())) {
throw new WxPayException("当trade_type是'JSAPI'时需指定非空的openid值");
}
if (StringUtils.isNotBlank(this.getSubAppId()) && StringUtils.isBlank(this.getSubOpenid())) {
throw new WxPayException("在服务商模式下当trade_type是'JSAPI'时需指定非空的sub_openid值");
}
}
if (TradeType.NATIVE.equals(this.getTradeType()) && StringUtils.isBlank(this.getProductId())) { if (TradeType.NATIVE.equals(this.getTradeType()) && StringUtils.isBlank(this.getProductId())) {
throw new WxPayException("当trade_type是'NATIVE'时需指定非空的product_id值"); throw new WxPayException("当trade_type是'NATIVE'时需指定非空的product_id值");
} }