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