@@ -271,14 +271,29 @@ public class WxPayUnifiedOrderRequest extends WxPayBaseRequest {
271271 @ XStreamAlias ("openid" )
272272 private String openid ;
273273
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+
274289 public WxPayUnifiedOrderRequest () {
275290 }
276291
277292 private WxPayUnifiedOrderRequest (Builder builder ) {
278- setAppid (builder .appid );
279293 setDeviceInfo (builder .deviceInfo );
280- setMchId (builder .mchId );
294+ setAppid (builder .appid );
281295 setBody (builder .body );
296+ setMchId (builder .mchId );
282297 setSubAppId (builder .subAppId );
283298 setSubMchId (builder .subMchId );
284299 setNonceStr (builder .nonceStr );
@@ -297,6 +312,7 @@ private WxPayUnifiedOrderRequest(Builder builder) {
297312 setProductId (builder .productId );
298313 setLimitPay (builder .limitPay );
299314 setOpenid (builder .openid );
315+ setSubOpenid (builder .subOpenid );
300316 }
301317
302318 public static Builder newBuilder () {
@@ -441,6 +457,14 @@ public void setOpenid(String openid) {
441457 this .openid = openid ;
442458 }
443459
460+ public String getSubOpenid () {
461+ return this .subOpenid ;
462+ }
463+
464+ public void setSubOpenid (String subOpenid ) {
465+ this .subOpenid = subOpenid ;
466+ }
467+
444468 @ Override
445469 protected void checkConstraints () {
446470// if (!ArrayUtils.contains(TRADE_TYPES, this.getTradeType())) {
@@ -471,10 +495,10 @@ public void checkAndSign(WxPayConfig config) throws WxPayException {
471495 }
472496
473497 public static final class Builder {
474- private String appid ;
475498 private String deviceInfo ;
476- private String mchId ;
499+ private String appid ;
477500 private String body ;
501+ private String mchId ;
478502 private String subAppId ;
479503 private String subMchId ;
480504 private String nonceStr ;
@@ -493,22 +517,18 @@ public static final class Builder {
493517 private String productId ;
494518 private String limitPay ;
495519 private String openid ;
520+ private String subOpenid ;
496521
497522 private Builder () {
498523 }
499524
500- public Builder appid (String appid ) {
501- this .appid = appid ;
502- return this ;
503- }
504-
505525 public Builder deviceInfo (String deviceInfo ) {
506526 this .deviceInfo = deviceInfo ;
507527 return this ;
508528 }
509529
510- public Builder mchId (String mchId ) {
511- this .mchId = mchId ;
530+ public Builder appid (String appid ) {
531+ this .appid = appid ;
512532 return this ;
513533 }
514534
@@ -517,6 +537,11 @@ public Builder body(String body) {
517537 return this ;
518538 }
519539
540+ public Builder mchId (String mchId ) {
541+ this .mchId = mchId ;
542+ return this ;
543+ }
544+
520545 public Builder subAppId (String subAppId ) {
521546 this .subAppId = subAppId ;
522547 return this ;
@@ -607,6 +632,11 @@ public Builder openid(String openid) {
607632 return this ;
608633 }
609634
635+ public Builder subOpenid (String subOpenid ) {
636+ this .subOpenid = subOpenid ;
637+ return this ;
638+ }
639+
610640 public WxPayUnifiedOrderRequest build () {
611641 return new WxPayUnifiedOrderRequest (this );
612642 }
0 commit comments