mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 10:38:42 +08:00 
			
		
		
		
	微信支付去掉统一下单接口请求时关于openid和sub_openid的逻辑判断,由调用者自己控制相关参数
This commit is contained in:
		| @ -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值"); | ||||||
|     } |     } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Binary Wang
					Binary Wang