优化统一下单时参数校验逻辑

This commit is contained in:
Binary Wang 2017-10-13 11:52:44 +08:00
parent 24e80a90a9
commit 4f1c66efce
2 changed files with 11 additions and 5 deletions

View File

@ -152,7 +152,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>

View File

@ -333,12 +333,18 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest {
@Override
protected void checkConstraints() throws WxPayException {
if (TradeType.JSAPI.equals(this.getTradeType()) && this.getOpenid() == null && this.getSubOpenid() == null) {
throw new WxPayException("当 trade_type是'JSAPI'时未指定openid或sub_openid");
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()) && this.getProductId() == null) {
throw new WxPayException("当 trade_type是'NATIVE'时未指定product_id");
if (TradeType.NATIVE.equals(this.getTradeType()) && StringUtils.isBlank(this.getProductId())) {
throw new WxPayException("trade_type是'NATIVE'时需指定非空的product_id值");
}
}