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

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

@@ -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");
}
}