businessAdditionPics;
+
+ /**
+ * 补充说明
+ */
+ @SerializedName("business_addition_msg")
+ private String businessAdditionMsg;
+
+ }
+
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmCreateResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmCreateResult.java
new file mode 100644
index 000000000..5fc4930d2
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmCreateResult.java
@@ -0,0 +1,31 @@
+package com.github.binarywang.wxpay.bean.applyconfirm;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+
+/**
+ * 间连商户开户意愿确认 提交申请结果响应
+ *
+ * @author Mr.Pan
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+public class ApplySubjectConfirmCreateResult implements Serializable {
+
+ private static final long serialVersionUID = 6171290256346697399L;
+ /**
+ * 微信支付申请单号
+ */
+ @SerializedName("applyment_id")
+ private String applymentId;
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmMerchantStateQueryResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmMerchantStateQueryResult.java
new file mode 100644
index 000000000..c155e1e6c
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmMerchantStateQueryResult.java
@@ -0,0 +1,30 @@
+package com.github.binarywang.wxpay.bean.applyconfirm;
+
+import com.github.binarywang.wxpay.bean.applyconfirm.enums.AuthorizeStateEnum;
+import com.github.binarywang.wxpay.bean.applyment.enums.ApplymentStateEnum;
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ *获取商户开户意愿确认状态返回对象信息
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+public class ApplySubjectConfirmMerchantStateQueryResult implements Serializable {
+ private static final long serialVersionUID = 3842134912775708112L;
+
+ /**
+ * 授权状态
+ */
+ @SerializedName("authorize_state")
+ private AuthorizeStateEnum applymentState;
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmStateQueryResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmStateQueryResult.java
new file mode 100644
index 000000000..77ee4c51e
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/ApplySubjectConfirmStateQueryResult.java
@@ -0,0 +1,45 @@
+package com.github.binarywang.wxpay.bean.applyconfirm;
+
+import com.github.binarywang.wxpay.bean.applyment.enums.ApplymentStateEnum;
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 查询申请单状态返回对象信息
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Accessors(chain = true)
+public class ApplySubjectConfirmStateQueryResult implements Serializable {
+ private static final long serialVersionUID = 3842134912775708112L;
+
+ /**
+ * 申请单状态
+ */
+ @SerializedName("applyment_state")
+ private ApplymentStateEnum applymentState;
+ /**
+ * 二维码图片
+ */
+ @SerializedName("qrcode_data")
+ private String qrcodeData;
+ /**
+ * 驳回参数
+ */
+ @SerializedName("reject_param")
+ private String rejectParam;
+ /**
+ * 驳回原因
+ */
+ @SerializedName("reject_reason")
+ private String rejectReason;
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/enums/AuthorizeStateEnum.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/enums/AuthorizeStateEnum.java
new file mode 100644
index 000000000..10542ce70
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/enums/AuthorizeStateEnum.java
@@ -0,0 +1,18 @@
+package com.github.binarywang.wxpay.bean.applyconfirm.enums;
+
+
+/**
+ * 授权状态枚举类
+ */
+public enum AuthorizeStateEnum {
+ /**
+ * 未授权
+ */
+ AUTHORIZE_STATE_UNAUTHORIZED,
+
+ /**
+ * 已授权
+ */
+ AUTHORIZE_STATE_AUTHORIZED,
+ ;
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Apply4SubjectConfirmService.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Apply4SubjectConfirmService.java
new file mode 100644
index 000000000..bb124bbd2
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/Apply4SubjectConfirmService.java
@@ -0,0 +1,97 @@
+package com.github.binarywang.wxpay.service;
+
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmCreateRequest;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmCreateResult;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmMerchantStateQueryResult;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmStateQueryResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+
+/**
+ *
+ * 商户开户意愿确认
+ * 产品文档:商户开户意愿确认流程
+ *
+ *
+ * @author Mr.Pan
+ */
+public interface Apply4SubjectConfirmService {
+
+ /**
+ *
+ * 提交申请单
+ * 详情请见: 间连商户开户意愿确认(提交申请单)
+ *
+ *
+ * @param request 申请请求参数
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ ApplySubjectConfirmCreateResult applyment(ApplySubjectConfirmCreateRequest request) throws WxPayException;
+
+ /**
+ *
+ *
+ * 查询申请单审核结果
+ * 详情请见: 查询申请单审核结果
+ *
+ *
+ * @param businessCode 业务申请编号
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ ApplySubjectConfirmStateQueryResult queryApplyStatusByBusinessCode(String businessCode) throws WxPayException;
+
+ /**
+ *
+ *
+ * 查询申请单审核结果
+ * 详情请见: 查询申请单审核结果
+ *
+ *
+ * @param applymentId 申请编号
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ ApplySubjectConfirmStateQueryResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException;
+
+
+ /**
+ *
+ *
+ * 获取商户开户意愿确认状态
+ * 详情请见: 获取商户开户意愿确认状态API
+ *
+ *
+ * @param subMchId 微信支付分配的特约商户的唯一标识。
+ * @return 确认状态结果
+ * @throws WxPayException 异常
+ */
+ ApplySubjectConfirmMerchantStateQueryResult queryMerchantApplyStatusByMchId(String subMchId) throws WxPayException;
+
+
+ /**
+ *
+ *
+ * 撤销申请单
+ * 详情请见: 撤销申请单API
+ *
+ *
+ * @param businessCode 业务申请编号
+ * @throws WxPayException 异常
+ */
+ void cancelApplyByBusinessCode(String businessCode) throws WxPayException;
+
+ /**
+ *
+ *
+ * 撤销申请单
+ * 详情请见: 撤销申请单API
+ *
+ *
+ * @param applymentId 申请编号
+ * @throws WxPayException 异常
+ */
+ void cancelApplyByApplymentId(String applymentId) throws WxPayException;
+
+
+}
diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/Apply4SubjectConfirmServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/Apply4SubjectConfirmServiceImpl.java
new file mode 100644
index 000000000..55af095f6
--- /dev/null
+++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/Apply4SubjectConfirmServiceImpl.java
@@ -0,0 +1,132 @@
+package com.github.binarywang.wxpay.service.impl;
+
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmCreateRequest;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmCreateResult;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmMerchantStateQueryResult;
+import com.github.binarywang.wxpay.bean.applyconfirm.ApplySubjectConfirmStateQueryResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.Apply4SubjectConfirmService;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.github.binarywang.wxpay.v3.util.RsaCryptoUtil;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ *
+ * 商户开户意愿确认
+ * 产品文档:商户开户意愿确认流程
+ *
+ *
+ * @author Mr.Pan
+ */
+@Slf4j
+@RequiredArgsConstructor
+public class Apply4SubjectConfirmServiceImpl implements Apply4SubjectConfirmService {
+
+ private static final Gson GSON = new GsonBuilder().create();
+ private final WxPayService payService;
+
+ /**
+ *
+ * 提交申请单
+ * 详情请见: 间连商户开户意愿确认(提交申请单)
+ *
+ *
+ * @param request 申请请求参数
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public ApplySubjectConfirmCreateResult applyment(ApplySubjectConfirmCreateRequest request) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment", this.payService.getPayBaseUrl());
+ RsaCryptoUtil.encryptFields(request, this.payService.getConfig().getVerifier().getValidCertificate());
+ String result = payService.postV3WithWechatpaySerial(url, GSON.toJson(request));
+ return GSON.fromJson(result, ApplySubjectConfirmCreateResult.class);
+ }
+
+ /**
+ *
+ * 查询申请单审核结果
+ * 详情请见: 查询申请单审核结果
+ *
+ *
+ * @param businessCode 业务申请编号
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public ApplySubjectConfirmStateQueryResult queryApplyStatusByBusinessCode(String businessCode) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment?business_code=%s", this.payService.getPayBaseUrl(), businessCode);
+ String result = payService.getV3(url);
+ return GSON.fromJson(result, ApplySubjectConfirmStateQueryResult.class);
+ }
+
+ /**
+ *
+ * 查询申请单审核结果
+ * 详情请见: 查询申请单审核结果
+ *
+ *
+ * @param applymentId 申请编号
+ * @return 审核结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public ApplySubjectConfirmStateQueryResult queryApplyStatusByApplymentId(String applymentId) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment?applyment_id=%s", this.payService.getPayBaseUrl(), applymentId);
+ String result = payService.getV3(url);
+ return GSON.fromJson(result, ApplySubjectConfirmStateQueryResult.class);
+ }
+
+ /**
+ *
+ * 获取商户开户意愿确认状态
+ * 详情请见: 获取商户开户意愿确认状态API
+ *
+ *
+ * @param subMchId 微信支付分配的特约商户的唯一标识。
+ * @return 确认状态结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public ApplySubjectConfirmMerchantStateQueryResult queryMerchantApplyStatusByMchId(String subMchId) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment/merchants/%s/state", this.payService.getPayBaseUrl(), subMchId);
+ String result = payService.getV3(url);
+ return GSON.fromJson(result, ApplySubjectConfirmMerchantStateQueryResult.class);
+ }
+
+ /**
+ *
+ * 撤销申请单
+ * 详情请见: 撤销申请单API
+ *
+ *
+ * @param businessCode 业务申请编号
+ * @return 返回结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public void cancelApplyByBusinessCode(String businessCode) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment/%s/cancel", this.payService.getPayBaseUrl(), businessCode);
+ payService.postV3WithWechatpaySerial(url, "");
+ }
+
+ /**
+ *
+ * 撤销申请单
+ * 详情请见: 撤销申请单API
+ *
+ *
+ * @param applymentId 申请编号
+ * @return 返回结果
+ * @throws WxPayException 异常
+ */
+ @Override
+ public void cancelApplyByApplymentId(String applymentId) throws WxPayException {
+ String url = String.format("%s/v3/apply4subject/applyment/%s/cancel", this.payService.getPayBaseUrl(), applymentId);
+ payService.postV3WithWechatpaySerial(url, "");
+ }
+}