content: /*
   * 支付宝开放平台API
   * 支付宝开放平台v3协议文档
   *
   * The version of the OpenAPI document: 2025-08-26
   * 
   *
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   * Do not edit the class manually.
   */
  
  
  package com.alipay.v3.api;
  
  import com.alipay.v3.ApiCallback;
  import com.alipay.v3.ApiClient;
  import com.alipay.v3.ApiException;
  import com.alipay.v3.ApiResponse;
  import com.alipay.v3.Configuration;
  import com.alipay.v3.Pair;
  import com.alipay.v3.ProgressRequestBody;
  import com.alipay.v3.ProgressResponseBody;
  import com.alipay.v3.util.AlipayLogger;
  import com.alipay.v3.util.model.CustomizedParams;
  
  import com.google.common.base.Strings;
  import com.google.gson.reflect.TypeToken;
  
  import java.io.IOException;
  
  
  import com.alipay.v3.model.AlipayEbppPdeductSignAddDefaultResponse;
  import com.alipay.v3.model.AlipayEbppPdeductSignAddModel;
  import com.alipay.v3.model.AlipayEbppPdeductSignAddResponseModel;
  import com.alipay.v3.model.AlipayEbppPdeductSignCancelDefaultResponse;
  import com.alipay.v3.model.AlipayEbppPdeductSignCancelModel;
  import com.alipay.v3.model.AlipayEbppPdeductSignCancelResponseModel;
  import com.alipay.v3.model.AlipayEbppPdeductSignQueryDefaultResponse;
  import com.alipay.v3.model.AlipayEbppPdeductSignQueryResponseModel;
  import com.alipay.v3.model.AlipayEbppPdeductSignValidateDefaultResponse;
  import com.alipay.v3.model.AlipayEbppPdeductSignValidateModel;
  
  import java.lang.reflect.Type;
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  import javax.ws.rs.core.GenericType;
  
  public class AlipayEbppPdeductSignApi {
      private ApiClient localVarApiClient;
      private int localHostIndex;
      private String localCustomBaseUrl;
  
      public AlipayEbppPdeductSignApi() {
          this(Configuration.getDefaultApiClient());
      }
  
      public AlipayEbppPdeductSignApi(ApiClient apiClient) {
          this.localVarApiClient = apiClient;
      }
  
      public ApiClient getApiClient() {
          return localVarApiClient;
      }
  
      public void setApiClient(ApiClient apiClient) {
          this.localVarApiClient = apiClient;
      }
  
      public int getHostIndex() {
          return localHostIndex;
      }
  
      public void setHostIndex(int hostIndex) {
          this.localHostIndex = hostIndex;
      }
  
      public String getCustomBaseUrl() {
          return localCustomBaseUrl;
      }
  
      public void setCustomBaseUrl(String customBaseUrl) {
          this.localCustomBaseUrl = customBaseUrl;
      }
  
      /**
       * Build call for add
       * @param alipayEbppPdeductSignAddModel  (optional)
       * @param _callback Callback for upload/download progress
       * @param customizedParams
       * @return Call to execute
       * @throws ApiException If fail to serialize the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public okhttp3.Call addCall(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          String basePath = null;
          // Operation Servers
          String[] localBasePaths = new String[] {  };
  
          // Determine Base Path to Use
          if (localCustomBaseUrl != null){
              basePath = localCustomBaseUrl;
          } else if ( localBasePaths.length > 0 ) {
              basePath = localBasePaths[localHostIndex];
          } else {
              basePath = null;
          }
  
          Object localVarPostBody = (customizedParams != null && !Strings.isNullOrEmpty(customizedParams.getBodyContent()))
                  ? customizedParams.getBodyContent() : alipayEbppPdeductSignAddModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/ebpp/pdeduct/sign/add";
  
          List<Pair> localVarQueryParams = new ArrayList<Pair>();
          List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
          Map<String, String> localVarHeaderParams = new HashMap<String, String>();
          Map<String, String> localVarCookieParams = new HashMap<String, String>();
          Map<String, Object> localVarFormParams = new HashMap<String, Object>();
  
          final String[] localVarAccepts = {
              "application/json"
          };
          final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
          if (localVarAccept != null) {
              localVarHeaderParams.put("Accept", localVarAccept);
          }
  
          final String[] localVarContentTypes = {
              "application/json"
          };
          final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
          if (localVarContentType != null) {
              localVarHeaderParams.put("Content-Type", localVarContentType);
          }
  
          if (customizedParams != null) {
              //额外query参数
              if (customizedParams.getQueryParams() != null && customizedParams.getQueryParams().size() > 0) {
                  for (Map.Entry<String, String> entry : customizedParams.getQueryParams().entrySet()) {
                      localVarQueryParams.addAll(localVarApiClient.parameterToPair(entry.getKey(), entry.getValue()));
                  }
              }
  
              if (!Strings.isNullOrEmpty(customizedParams.getAppAuthToken())) {
                  localVarHeaderParams.put("alipay-app-auth-token", customizedParams.getAppAuthToken());
              }
  
              //额外非全局header参数
              if (customizedParams.getHeaderParams() != null && customizedParams.getHeaderParams().size() > 0) {
                  localVarHeaderParams.putAll(customizedParams.getHeaderParams());
              }
          }
  
          String[] localVarAuthNames = new String[] {  };
          return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
      }
  
      @SuppressWarnings("rawtypes")
      private okhttp3.Call addValidateBeforeCall(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = addCall(alipayEbppPdeductSignAddModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 缴费直连代扣签约
       * 缴费直连代扣签约
       * @param alipayEbppPdeductSignAddModel  (optional)
       * @return AlipayEbppPdeductSignAddResponseModel
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public AlipayEbppPdeductSignAddResponseModel add(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignAddResponseModel> localVarResp = addWithHttpInfo(alipayEbppPdeductSignAddModel, null);
          return localVarResp.getData();
      }
  
      public AlipayEbppPdeductSignAddResponseModel add(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignAddResponseModel> localVarResp = addWithHttpInfo(alipayEbppPdeductSignAddModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 缴费直连代扣签约
       * 缴费直连代扣签约
       * @param alipayEbppPdeductSignAddModel  (optional)
       * @return ApiResponse&lt;AlipayEbppPdeductSignAddResponseModel&gt;
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public ApiResponse<AlipayEbppPdeductSignAddResponseModel> addWithHttpInfo(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = addValidateBeforeCall(alipayEbppPdeductSignAddModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignAddResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayEbppPdeductSignAddDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 缴费直连代扣签约 (asynchronously)
       * 缴费直连代扣签约
       * @param alipayEbppPdeductSignAddModel  (optional)
       * @param _callback The callback to be executed when the API call finishes
       * @return The request call
       * @throws ApiException If fail to process the API call, e.g. serializing the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       * @deprecated
       */
      @Deprecated
      public okhttp3.Call addAsync(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, final ApiCallback<AlipayEbppPdeductSignAddResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = addValidateBeforeCall(alipayEbppPdeductSignAddModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignAddResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call addAsync(AlipayEbppPdeductSignAddModel alipayEbppPdeductSignAddModel, final ApiCallback<AlipayEbppPdeductSignAddResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = addValidateBeforeCall(alipayEbppPdeductSignAddModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignAddResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for cancel
       * @param alipayEbppPdeductSignCancelModel  (optional)
       * @param _callback Callback for upload/download progress
       * @param customizedParams
       * @return Call to execute
       * @throws ApiException If fail to serialize the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public okhttp3.Call cancelCall(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          String basePath = null;
          // Operation Servers
          String[] localBasePaths = new String[] {  };
  
          // Determine Base Path to Use
          if (localCustomBaseUrl != null){
              basePath = localCustomBaseUrl;
          } else if ( localBasePaths.length > 0 ) {
              basePath = localBasePaths[localHostIndex];
          } else {
              basePath = null;
          }
  
          Object localVarPostBody = (customizedParams != null && !Strings.isNullOrEmpty(customizedParams.getBodyContent()))
                  ? customizedParams.getBodyContent() : alipayEbppPdeductSignCancelModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/ebpp/pdeduct/sign/cancel";
  
          List<Pair> localVarQueryParams = new ArrayList<Pair>();
          List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
          Map<String, String> localVarHeaderParams = new HashMap<String, String>();
          Map<String, String> localVarCookieParams = new HashMap<String, String>();
          Map<String, Object> localVarFormParams = new HashMap<String, Object>();
  
          final String[] localVarAccepts = {
              "application/json"
          };
          final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
          if (localVarAccept != null) {
              localVarHeaderParams.put("Accept", localVarAccept);
          }
  
          final String[] localVarContentTypes = {
              "application/json"
          };
          final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
          if (localVarContentType != null) {
              localVarHeaderParams.put("Content-Type", localVarContentType);
          }
  
          if (customizedParams != null) {
              //额外query参数
              if (customizedParams.getQueryParams() != null && customizedParams.getQueryParams().size() > 0) {
                  for (Map.Entry<String, String> entry : customizedParams.getQueryParams().entrySet()) {
                      localVarQueryParams.addAll(localVarApiClient.parameterToPair(entry.getKey(), entry.getValue()));
                  }
              }
  
              if (!Strings.isNullOrEmpty(customizedParams.getAppAuthToken())) {
                  localVarHeaderParams.put("alipay-app-auth-token", customizedParams.getAppAuthToken());
              }
  
              //额外非全局header参数
              if (customizedParams.getHeaderParams() != null && customizedParams.getHeaderParams().size() > 0) {
                  localVarHeaderParams.putAll(customizedParams.getHeaderParams());
              }
          }
  
          String[] localVarAuthNames = new String[] {  };
          return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
      }
  
      @SuppressWarnings("rawtypes")
      private okhttp3.Call cancelValidateBeforeCall(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = cancelCall(alipayEbppPdeductSignCancelModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 缴费直连代扣取消签约
       * 缴费直连代扣，用户取消签约接口
       * @param alipayEbppPdeductSignCancelModel  (optional)
       * @return AlipayEbppPdeductSignCancelResponseModel
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public AlipayEbppPdeductSignCancelResponseModel cancel(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignCancelResponseModel> localVarResp = cancelWithHttpInfo(alipayEbppPdeductSignCancelModel, null);
          return localVarResp.getData();
      }
  
      public AlipayEbppPdeductSignCancelResponseModel cancel(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignCancelResponseModel> localVarResp = cancelWithHttpInfo(alipayEbppPdeductSignCancelModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 缴费直连代扣取消签约
       * 缴费直连代扣，用户取消签约接口
       * @param alipayEbppPdeductSignCancelModel  (optional)
       * @return ApiResponse&lt;AlipayEbppPdeductSignCancelResponseModel&gt;
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public ApiResponse<AlipayEbppPdeductSignCancelResponseModel> cancelWithHttpInfo(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = cancelValidateBeforeCall(alipayEbppPdeductSignCancelModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignCancelResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayEbppPdeductSignCancelDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 缴费直连代扣取消签约 (asynchronously)
       * 缴费直连代扣，用户取消签约接口
       * @param alipayEbppPdeductSignCancelModel  (optional)
       * @param _callback The callback to be executed when the API call finishes
       * @return The request call
       * @throws ApiException If fail to process the API call, e.g. serializing the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       * @deprecated
       */
      @Deprecated
      public okhttp3.Call cancelAsync(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, final ApiCallback<AlipayEbppPdeductSignCancelResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = cancelValidateBeforeCall(alipayEbppPdeductSignCancelModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignCancelResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call cancelAsync(AlipayEbppPdeductSignCancelModel alipayEbppPdeductSignCancelModel, final ApiCallback<AlipayEbppPdeductSignCancelResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = cancelValidateBeforeCall(alipayEbppPdeductSignCancelModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignCancelResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for query
       * @param userId 用户ID (optional)
       * @param openId 用户UserId在应用AppId下的唯一用户标识 (optional)
       * @param agreementId 支付宝代扣协议Id。若协议id不传递，则需要保证业务类型、子业务类型、出账机构、户号必传 (optional)
       * @param bizType 业务类型。  JF：缴水、电、燃气、固话宽带、有线电视、交通罚款费用  WUYE：缴物业费  HK：信用卡还款  TX：手机充值 (optional)
       * @param subBizType 业务子类型。  WATER：缴水费  ELECTRIC：缴电费  GAS：缴燃气费  COMMUN：缴固话宽带  CATV：缴有线电视费  TRAFFIC：缴交通罚款  WUYE：缴物业费  HK：信用卡还款  CZ：手机充值 (optional)
       * @param chargeInst 支付宝缴费系统中的出账机构ID (optional)
       * @param billKey 户号，机构针对于每户的水、电都会有唯一的标识户号 (optional)
       * @param _callback Callback for upload/download progress
       * @param customizedParams
       * @return Call to execute
       * @throws ApiException If fail to serialize the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public okhttp3.Call queryCall(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          String basePath = null;
          // Operation Servers
          String[] localBasePaths = new String[] {  };
  
          // Determine Base Path to Use
          if (localCustomBaseUrl != null){
              basePath = localCustomBaseUrl;
          } else if ( localBasePaths.length > 0 ) {
              basePath = localBasePaths[localHostIndex];
          } else {
              basePath = null;
          }
  
          Object localVarPostBody = null;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/ebpp/pdeduct/sign/query";
  
          List<Pair> localVarQueryParams = new ArrayList<Pair>();
          List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
          Map<String, String> localVarHeaderParams = new HashMap<String, String>();
          Map<String, String> localVarCookieParams = new HashMap<String, String>();
          Map<String, Object> localVarFormParams = new HashMap<String, Object>();
  
          if (userId != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("user_id", userId));
          }
  
          if (openId != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("open_id", openId));
          }
  
          if (agreementId != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("agreement_id", agreementId));
          }
  
          if (bizType != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("biz_type", bizType));
          }
  
          if (subBizType != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("sub_biz_type", subBizType));
          }
  
          if (chargeInst != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("charge_inst", chargeInst));
          }
  
          if (billKey != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("bill_key", billKey));
          }
  
          final String[] localVarAccepts = {
              "application/json"
          };
          final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
          if (localVarAccept != null) {
              localVarHeaderParams.put("Accept", localVarAccept);
          }
  
          final String[] localVarContentTypes = {
              
          };
          final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
          if (localVarContentType != null) {
              localVarHeaderParams.put("Content-Type", localVarContentType);
          }
  
          if (customizedParams != null) {
              //额外query参数
              if (customizedParams.getQueryParams() != null && customizedParams.getQueryParams().size() > 0) {
                  for (Map.Entry<String, String> entry : customizedParams.getQueryParams().entrySet()) {
                      localVarQueryParams.addAll(localVarApiClient.parameterToPair(entry.getKey(), entry.getValue()));
                  }
              }
  
              if (!Strings.isNullOrEmpty(customizedParams.getAppAuthToken())) {
                  localVarHeaderParams.put("alipay-app-auth-token", customizedParams.getAppAuthToken());
              }
  
              //额外非全局header参数
              if (customizedParams.getHeaderParams() != null && customizedParams.getHeaderParams().size() > 0) {
                  localVarHeaderParams.putAll(customizedParams.getHeaderParams());
              }
          }
  
          String[] localVarAuthNames = new String[] {  };
          return localVarApiClient.buildCall(basePath, localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
      }
  
      @SuppressWarnings("rawtypes")
      private okhttp3.Call queryValidateBeforeCall(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = queryCall(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 直连代扣协议查询接口
       * 提供给朗新查询代扣协议状态的接口，用于进行双边对账，解决单边协议问题
       * @param userId 用户ID (optional)
       * @param openId 用户UserId在应用AppId下的唯一用户标识 (optional)
       * @param agreementId 支付宝代扣协议Id。若协议id不传递，则需要保证业务类型、子业务类型、出账机构、户号必传 (optional)
       * @param bizType 业务类型。  JF：缴水、电、燃气、固话宽带、有线电视、交通罚款费用  WUYE：缴物业费  HK：信用卡还款  TX：手机充值 (optional)
       * @param subBizType 业务子类型。  WATER：缴水费  ELECTRIC：缴电费  GAS：缴燃气费  COMMUN：缴固话宽带  CATV：缴有线电视费  TRAFFIC：缴交通罚款  WUYE：缴物业费  HK：信用卡还款  CZ：手机充值 (optional)
       * @param chargeInst 支付宝缴费系统中的出账机构ID (optional)
       * @param billKey 户号，机构针对于每户的水、电都会有唯一的标识户号 (optional)
       * @return AlipayEbppPdeductSignQueryResponseModel
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public AlipayEbppPdeductSignQueryResponseModel query(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignQueryResponseModel> localVarResp = queryWithHttpInfo(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, null);
          return localVarResp.getData();
      }
  
      public AlipayEbppPdeductSignQueryResponseModel query(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayEbppPdeductSignQueryResponseModel> localVarResp = queryWithHttpInfo(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 直连代扣协议查询接口
       * 提供给朗新查询代扣协议状态的接口，用于进行双边对账，解决单边协议问题
       * @param userId 用户ID (optional)
       * @param openId 用户UserId在应用AppId下的唯一用户标识 (optional)
       * @param agreementId 支付宝代扣协议Id。若协议id不传递，则需要保证业务类型、子业务类型、出账机构、户号必传 (optional)
       * @param bizType 业务类型。  JF：缴水、电、燃气、固话宽带、有线电视、交通罚款费用  WUYE：缴物业费  HK：信用卡还款  TX：手机充值 (optional)
       * @param subBizType 业务子类型。  WATER：缴水费  ELECTRIC：缴电费  GAS：缴燃气费  COMMUN：缴固话宽带  CATV：缴有线电视费  TRAFFIC：缴交通罚款  WUYE：缴物业费  HK：信用卡还款  CZ：手机充值 (optional)
       * @param chargeInst 支付宝缴费系统中的出账机构ID (optional)
       * @param billKey 户号，机构针对于每户的水、电都会有唯一的标识户号 (optional)
       * @return ApiResponse&lt;AlipayEbppPdeductSignQueryResponseModel&gt;
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public ApiResponse<AlipayEbppPdeductSignQueryResponseModel> queryWithHttpInfo(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = queryValidateBeforeCall(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignQueryResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayEbppPdeductSignQueryDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 直连代扣协议查询接口 (asynchronously)
       * 提供给朗新查询代扣协议状态的接口，用于进行双边对账，解决单边协议问题
       * @param userId 用户ID (optional)
       * @param openId 用户UserId在应用AppId下的唯一用户标识 (optional)
       * @param agreementId 支付宝代扣协议Id。若协议id不传递，则需要保证业务类型、子业务类型、出账机构、户号必传 (optional)
       * @param bizType 业务类型。  JF：缴水、电、燃气、固话宽带、有线电视、交通罚款费用  WUYE：缴物业费  HK：信用卡还款  TX：手机充值 (optional)
       * @param subBizType 业务子类型。  WATER：缴水费  ELECTRIC：缴电费  GAS：缴燃气费  COMMUN：缴固话宽带  CATV：缴有线电视费  TRAFFIC：缴交通罚款  WUYE：缴物业费  HK：信用卡还款  CZ：手机充值 (optional)
       * @param chargeInst 支付宝缴费系统中的出账机构ID (optional)
       * @param billKey 户号，机构针对于每户的水、电都会有唯一的标识户号 (optional)
       * @param _callback The callback to be executed when the API call finishes
       * @return The request call
       * @throws ApiException If fail to process the API call, e.g. serializing the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       * @deprecated
       */
      @Deprecated
      public okhttp3.Call queryAsync(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, final ApiCallback<AlipayEbppPdeductSignQueryResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = queryValidateBeforeCall(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignQueryResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call queryAsync(String userId, String openId, String agreementId, String bizType, String subBizType, String chargeInst, String billKey, final ApiCallback<AlipayEbppPdeductSignQueryResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = queryValidateBeforeCall(userId, openId, agreementId, bizType, subBizType, chargeInst, billKey, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayEbppPdeductSignQueryResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for validate
       * @param alipayEbppPdeductSignValidateModel  (optional)
       * @param _callback Callback for upload/download progress
       * @param customizedParams
       * @return Call to execute
       * @throws ApiException If fail to serialize the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public okhttp3.Call validateCall(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          String basePath = null;
          // Operation Servers
          String[] localBasePaths = new String[] {  };
  
          // Determine Base Path to Use
          if (localCustomBaseUrl != null){
              basePath = localCustomBaseUrl;
          } else if ( localBasePaths.length > 0 ) {
              basePath = localBasePaths[localHostIndex];
          } else {
              basePath = null;
          }
  
          Object localVarPostBody = (customizedParams != null && !Strings.isNullOrEmpty(customizedParams.getBodyContent()))
                  ? customizedParams.getBodyContent() : alipayEbppPdeductSignValidateModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/ebpp/pdeduct/sign/validate";
  
          List<Pair> localVarQueryParams = new ArrayList<Pair>();
          List<Pair> localVarCollectionQueryParams = new ArrayList<Pair>();
          Map<String, String> localVarHeaderParams = new HashMap<String, String>();
          Map<String, String> localVarCookieParams = new HashMap<String, String>();
          Map<String, Object> localVarFormParams = new HashMap<String, Object>();
  
          final String[] localVarAccepts = {
              "application/json"
          };
          final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
          if (localVarAccept != null) {
              localVarHeaderParams.put("Accept", localVarAccept);
          }
  
          final String[] localVarContentTypes = {
              "application/json"
          };
          final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
          if (localVarContentType != null) {
              localVarHeaderParams.put("Content-Type", localVarContentType);
          }
  
          if (customizedParams != null) {
              //额外query参数
              if (customizedParams.getQueryParams() != null && customizedParams.getQueryParams().size() > 0) {
                  for (Map.Entry<String, String> entry : customizedParams.getQueryParams().entrySet()) {
                      localVarQueryParams.addAll(localVarApiClient.parameterToPair(entry.getKey(), entry.getValue()));
                  }
              }
  
              if (!Strings.isNullOrEmpty(customizedParams.getAppAuthToken())) {
                  localVarHeaderParams.put("alipay-app-auth-token", customizedParams.getAppAuthToken());
              }
  
              //额外非全局header参数
              if (customizedParams.getHeaderParams() != null && customizedParams.getHeaderParams().size() > 0) {
                  localVarHeaderParams.putAll(customizedParams.getHeaderParams());
              }
          }
  
          String[] localVarAuthNames = new String[] {  };
          return localVarApiClient.buildCall(basePath, localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
      }
  
      @SuppressWarnings("rawtypes")
      private okhttp3.Call validateValidateBeforeCall(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = validateCall(alipayEbppPdeductSignValidateModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 缴费直连代扣签约前置校验
       * 服务窗代扣签约的前置校验接口，签约前，可以先调用该接口进行校验是否可以签约
       * @param alipayEbppPdeductSignValidateModel  (optional)
       * @return Object
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public Object validate(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel) throws ApiException {
          ApiResponse<Object> localVarResp = validateWithHttpInfo(alipayEbppPdeductSignValidateModel, null);
          return localVarResp.getData();
      }
  
      public Object validate(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<Object> localVarResp = validateWithHttpInfo(alipayEbppPdeductSignValidateModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 缴费直连代扣签约前置校验
       * 服务窗代扣签约的前置校验接口，签约前，可以先调用该接口进行校验是否可以签约
       * @param alipayEbppPdeductSignValidateModel  (optional)
       * @return ApiResponse&lt;Object&gt;
       * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       */
      public ApiResponse<Object> validateWithHttpInfo(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = validateValidateBeforeCall(alipayEbppPdeductSignValidateModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<Object>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayEbppPdeductSignValidateDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 缴费直连代扣签约前置校验 (asynchronously)
       * 服务窗代扣签约的前置校验接口，签约前，可以先调用该接口进行校验是否可以签约
       * @param alipayEbppPdeductSignValidateModel  (optional)
       * @param _callback The callback to be executed when the API call finishes
       * @return The request call
       * @throws ApiException If fail to process the API call, e.g. serializing the request body object
       * @http.response.details
       <table summary="Response Details" border="1">
          <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
          <tr><td> 200 </td><td> common response </td><td>  -  </td></tr>
          <tr><td> 0 </td><td> 请求失败 </td><td>  -  </td></tr>
       </table>
       * @deprecated
       */
      @Deprecated
      public okhttp3.Call validateAsync(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, final ApiCallback<Object> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = validateValidateBeforeCall(alipayEbppPdeductSignValidateModel, _callback, null);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call validateAsync(AlipayEbppPdeductSignValidateModel alipayEbppPdeductSignValidateModel, final ApiCallback<Object> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = validateValidateBeforeCall(alipayEbppPdeductSignValidateModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  }
  