@@ -271,14 +271,29 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest {
271
271
@ XStreamAlias ("openid" )
272
272
private String openid ;
273
273
274
+ /**
275
+ * <pre>
276
+ * 用户子标识
277
+ * sub_openid
278
+ * 否
279
+ * String(128)
280
+ * oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
281
+ * trade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。
282
+ * openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。
283
+ * 下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。
284
+ * </pre>
285
+ */
286
+ @ XStreamAlias ("sub_openid" )
287
+ private String subOpenid ;
288
+
274
289
public WxPayUnifiedOrderRequest () {
275
290
}
276
291
277
292
private WxPayUnifiedOrderRequest (Builder builder ) {
278
- setAppid (builder .appid );
279
293
setDeviceInfo (builder .deviceInfo );
280
- setMchId (builder .mchId );
294
+ setAppid (builder .appid );
281
295
setBody (builder .body );
296
+ setMchId (builder .mchId );
282
297
setSubAppId (builder .subAppId );
283
298
setSubMchId (builder .subMchId );
284
299
setNonceStr (builder .nonceStr );
@@ -297,6 +312,7 @@ private WxPayUnifiedOrderRequest(Builder builder) {
297
312
setProductId (builder .productId );
298
313
setLimitPay (builder .limitPay );
299
314
setOpenid (builder .openid );
315
+ setSubOpenid (builder .subOpenid );
300
316
}
301
317
302
318
public static Builder newBuilder () {
@@ -441,6 +457,14 @@ public void setOpenid(String openid) {
441
457
this .openid = openid ;
442
458
}
443
459
460
+ public String getSubOpenid () {
461
+ return this .subOpenid ;
462
+ }
463
+
464
+ public void setSubOpenid (String subOpenid ) {
465
+ this .subOpenid = subOpenid ;
466
+ }
467
+
444
468
@ Override
445
469
protected void checkConstraints () {
446
470
// if (!ArrayUtils.contains(TRADE_TYPES, this.getTradeType())) {
@@ -471,10 +495,10 @@ public void checkAndSign(WxPayConfig config) throws WxPayException {
471
495
}
472
496
473
497
public static final class Builder {
474
- private String appid ;
475
498
private String deviceInfo ;
476
- private String mchId ;
499
+ private String appid ;
477
500
private String body ;
501
+ private String mchId ;
478
502
private String subAppId ;
479
503
private String subMchId ;
480
504
private String nonceStr ;
@@ -493,22 +517,18 @@ public static final class Builder {
493
517
private String productId ;
494
518
private String limitPay ;
495
519
private String openid ;
520
+ private String subOpenid ;
496
521
497
522
private Builder () {
498
523
}
499
524
500
- public Builder appid (String appid ) {
501
- this .appid = appid ;
502
- return this ;
503
- }
504
-
505
525
public Builder deviceInfo (String deviceInfo ) {
506
526
this .deviceInfo = deviceInfo ;
507
527
return this ;
508
528
}
509
529
510
- public Builder mchId (String mchId ) {
511
- this .mchId = mchId ;
530
+ public Builder appid (String appid ) {
531
+ this .appid = appid ;
512
532
return this ;
513
533
}
514
534
@@ -517,6 +537,11 @@ public Builder body(String body) {
517
537
return this ;
518
538
}
519
539
540
+ public Builder mchId (String mchId ) {
541
+ this .mchId = mchId ;
542
+ return this ;
543
+ }
544
+
520
545
public Builder subAppId (String subAppId ) {
521
546
this .subAppId = subAppId ;
522
547
return this ;
@@ -607,6 +632,11 @@ public Builder openid(String openid) {
607
632
return this ;
608
633
}
609
634
635
+ public Builder subOpenid (String subOpenid ) {
636
+ this .subOpenid = subOpenid ;
637
+ return this ;
638
+ }
639
+
610
640
public WxPayUnifiedOrderRequest build () {
611
641
return new WxPayUnifiedOrderRequest (this );
612
642
}
0 commit comments