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.AlipayMarketingActivityVoucherAppendDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherAppendModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherAppendResponseModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherCreateDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherCreateModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherCreateResponseModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherModifyDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherModifyModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherPublishDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherPublishModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherPublishResponseModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherQueryDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherQueryResponseModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherSendDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherSendModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherSendResponseModel;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherStopDefaultResponse;
  import com.alipay.v3.model.AlipayMarketingActivityVoucherStopModel;
  
  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 AlipayMarketingActivityVoucherApi {
      private ApiClient localVarApiClient;
      private int localHostIndex;
      private String localCustomBaseUrl;
  
      public AlipayMarketingActivityVoucherApi() {
          this(Configuration.getDefaultApiClient());
      }
  
      public AlipayMarketingActivityVoucherApi(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 append
       * @param alipayMarketingActivityVoucherAppendModel  (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 appendCall(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, 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() : alipayMarketingActivityVoucherAppendModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/append";
  
          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 appendValidateBeforeCall(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = appendCall(alipayMarketingActivityVoucherAppendModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 追加支付券预算
       * 支付券激活成功后，调用该接口追加支付券预算。追加支付券预算接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.appended消息接口异步发送追加支付券预算成功事件消息。  如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherAppendModel  (optional)
       * @return AlipayMarketingActivityVoucherAppendResponseModel
       * @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 AlipayMarketingActivityVoucherAppendResponseModel append(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherAppendResponseModel> localVarResp = appendWithHttpInfo(alipayMarketingActivityVoucherAppendModel, null);
          return localVarResp.getData();
      }
  
      public AlipayMarketingActivityVoucherAppendResponseModel append(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherAppendResponseModel> localVarResp = appendWithHttpInfo(alipayMarketingActivityVoucherAppendModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 追加支付券预算
       * 支付券激活成功后，调用该接口追加支付券预算。追加支付券预算接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.appended消息接口异步发送追加支付券预算成功事件消息。  如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherAppendModel  (optional)
       * @return ApiResponse&lt;AlipayMarketingActivityVoucherAppendResponseModel&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<AlipayMarketingActivityVoucherAppendResponseModel> appendWithHttpInfo(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = appendValidateBeforeCall(alipayMarketingActivityVoucherAppendModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherAppendResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayMarketingActivityVoucherAppendDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 追加支付券预算 (asynchronously)
       * 支付券激活成功后，调用该接口追加支付券预算。追加支付券预算接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.appended消息接口异步发送追加支付券预算成功事件消息。  如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherAppendModel  (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 appendAsync(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, final ApiCallback<AlipayMarketingActivityVoucherAppendResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = appendValidateBeforeCall(alipayMarketingActivityVoucherAppendModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherAppendResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call appendAsync(AlipayMarketingActivityVoucherAppendModel alipayMarketingActivityVoucherAppendModel, final ApiCallback<AlipayMarketingActivityVoucherAppendResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = appendValidateBeforeCall(alipayMarketingActivityVoucherAppendModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherAppendResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for create
       * @param alipayMarketingActivityVoucherCreateModel  (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 createCall(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, 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() : alipayMarketingActivityVoucherCreateModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/create";
  
          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 createValidateBeforeCall(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = createCall(alipayMarketingActivityVoucherCreateModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 创建支付券
       * 商户通过调用此接口创建支付券，包括预充值&amp;免充值支付券，接口同步返回创建处理结果。创建完成后将获得活动id，可用于各个营销场景的活动投放。
       * @param alipayMarketingActivityVoucherCreateModel  (optional)
       * @return AlipayMarketingActivityVoucherCreateResponseModel
       * @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 AlipayMarketingActivityVoucherCreateResponseModel create(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherCreateResponseModel> localVarResp = createWithHttpInfo(alipayMarketingActivityVoucherCreateModel, null);
          return localVarResp.getData();
      }
  
      public AlipayMarketingActivityVoucherCreateResponseModel create(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherCreateResponseModel> localVarResp = createWithHttpInfo(alipayMarketingActivityVoucherCreateModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 创建支付券
       * 商户通过调用此接口创建支付券，包括预充值&amp;免充值支付券，接口同步返回创建处理结果。创建完成后将获得活动id，可用于各个营销场景的活动投放。
       * @param alipayMarketingActivityVoucherCreateModel  (optional)
       * @return ApiResponse&lt;AlipayMarketingActivityVoucherCreateResponseModel&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<AlipayMarketingActivityVoucherCreateResponseModel> createWithHttpInfo(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = createValidateBeforeCall(alipayMarketingActivityVoucherCreateModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherCreateResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayMarketingActivityVoucherCreateDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 创建支付券 (asynchronously)
       * 商户通过调用此接口创建支付券，包括预充值&amp;免充值支付券，接口同步返回创建处理结果。创建完成后将获得活动id，可用于各个营销场景的活动投放。
       * @param alipayMarketingActivityVoucherCreateModel  (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 createAsync(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, final ApiCallback<AlipayMarketingActivityVoucherCreateResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = createValidateBeforeCall(alipayMarketingActivityVoucherCreateModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherCreateResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call createAsync(AlipayMarketingActivityVoucherCreateModel alipayMarketingActivityVoucherCreateModel, final ApiCallback<AlipayMarketingActivityVoucherCreateResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = createValidateBeforeCall(alipayMarketingActivityVoucherCreateModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherCreateResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for modify
       * @param alipayMarketingActivityVoucherModifyModel  (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 modifyCall(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, 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() : alipayMarketingActivityVoucherModifyModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/modify";
  
          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 modifyValidateBeforeCall(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = modifyCall(alipayMarketingActivityVoucherModifyModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 修改支付券基本信息
       * 商户可以通过该接口修改支付券基本信息。 接口同步返回修改请求受理结果，后续通过alipay.marketing.activity.message.modified消息接口异步发送修改活动成功事件消息。   特别注意：修改支付券接口返回结果并不代表活动修改成功，必须等待消息回调后才能确保成功。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherModifyModel  (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 modify(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel) throws ApiException {
          ApiResponse<Object> localVarResp = modifyWithHttpInfo(alipayMarketingActivityVoucherModifyModel, null);
          return localVarResp.getData();
      }
  
      public Object modify(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<Object> localVarResp = modifyWithHttpInfo(alipayMarketingActivityVoucherModifyModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 修改支付券基本信息
       * 商户可以通过该接口修改支付券基本信息。 接口同步返回修改请求受理结果，后续通过alipay.marketing.activity.message.modified消息接口异步发送修改活动成功事件消息。   特别注意：修改支付券接口返回结果并不代表活动修改成功，必须等待消息回调后才能确保成功。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherModifyModel  (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> modifyWithHttpInfo(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = modifyValidateBeforeCall(alipayMarketingActivityVoucherModifyModel, 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<AlipayMarketingActivityVoucherModifyDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 修改支付券基本信息 (asynchronously)
       * 商户可以通过该接口修改支付券基本信息。 接口同步返回修改请求受理结果，后续通过alipay.marketing.activity.message.modified消息接口异步发送修改活动成功事件消息。   特别注意：修改支付券接口返回结果并不代表活动修改成功，必须等待消息回调后才能确保成功。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherModifyModel  (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 modifyAsync(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, final ApiCallback<Object> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = modifyValidateBeforeCall(alipayMarketingActivityVoucherModifyModel, _callback, null);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call modifyAsync(AlipayMarketingActivityVoucherModifyModel alipayMarketingActivityVoucherModifyModel, final ApiCallback<Object> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = modifyValidateBeforeCall(alipayMarketingActivityVoucherModifyModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for publish
       * @param alipayMarketingActivityVoucherPublishModel  (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 publishCall(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, 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() : alipayMarketingActivityVoucherPublishModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/publish";
  
          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 publishValidateBeforeCall(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = publishCall(alipayMarketingActivityVoucherPublishModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 激活支付券
       * 支付券创建成功后，通过调用此接口激活支付券。 激活支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.created消息接口异步发送激活支付券成功事件消息。 如果成功消息长时间未送达，请联系相关技术人员。 
       * @param alipayMarketingActivityVoucherPublishModel  (optional)
       * @return AlipayMarketingActivityVoucherPublishResponseModel
       * @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 AlipayMarketingActivityVoucherPublishResponseModel publish(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherPublishResponseModel> localVarResp = publishWithHttpInfo(alipayMarketingActivityVoucherPublishModel, null);
          return localVarResp.getData();
      }
  
      public AlipayMarketingActivityVoucherPublishResponseModel publish(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherPublishResponseModel> localVarResp = publishWithHttpInfo(alipayMarketingActivityVoucherPublishModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 激活支付券
       * 支付券创建成功后，通过调用此接口激活支付券。 激活支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.created消息接口异步发送激活支付券成功事件消息。 如果成功消息长时间未送达，请联系相关技术人员。 
       * @param alipayMarketingActivityVoucherPublishModel  (optional)
       * @return ApiResponse&lt;AlipayMarketingActivityVoucherPublishResponseModel&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<AlipayMarketingActivityVoucherPublishResponseModel> publishWithHttpInfo(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = publishValidateBeforeCall(alipayMarketingActivityVoucherPublishModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherPublishResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayMarketingActivityVoucherPublishDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 激活支付券 (asynchronously)
       * 支付券创建成功后，通过调用此接口激活支付券。 激活支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.created消息接口异步发送激活支付券成功事件消息。 如果成功消息长时间未送达，请联系相关技术人员。 
       * @param alipayMarketingActivityVoucherPublishModel  (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 publishAsync(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, final ApiCallback<AlipayMarketingActivityVoucherPublishResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = publishValidateBeforeCall(alipayMarketingActivityVoucherPublishModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherPublishResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call publishAsync(AlipayMarketingActivityVoucherPublishModel alipayMarketingActivityVoucherPublishModel, final ApiCallback<AlipayMarketingActivityVoucherPublishResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = publishValidateBeforeCall(alipayMarketingActivityVoucherPublishModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherPublishResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for query
       * @param activityId 活动id (optional)
       * @param merchantAccessMode 商户接入模式。 (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 activityId, String merchantAccessMode, 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/marketing/activity/voucher/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 (activityId != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("activity_id", activityId));
          }
  
          if (merchantAccessMode != null) {
              localVarQueryParams.addAll(localVarApiClient.parameterToPair("merchant_access_mode", merchantAccessMode));
          }
  
          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 activityId, String merchantAccessMode, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = queryCall(activityId, merchantAccessMode, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 查询支付券详情
       * 通过此接口可查询支付券活动信息，包括活动的配置信息以及活动概况数据。
       * @param activityId 活动id (optional)
       * @param merchantAccessMode 商户接入模式。 (optional)
       * @return AlipayMarketingActivityVoucherQueryResponseModel
       * @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 AlipayMarketingActivityVoucherQueryResponseModel query(String activityId, String merchantAccessMode) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherQueryResponseModel> localVarResp = queryWithHttpInfo(activityId, merchantAccessMode, null);
          return localVarResp.getData();
      }
  
      public AlipayMarketingActivityVoucherQueryResponseModel query(String activityId, String merchantAccessMode, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherQueryResponseModel> localVarResp = queryWithHttpInfo(activityId, merchantAccessMode, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 查询支付券详情
       * 通过此接口可查询支付券活动信息，包括活动的配置信息以及活动概况数据。
       * @param activityId 活动id (optional)
       * @param merchantAccessMode 商户接入模式。 (optional)
       * @return ApiResponse&lt;AlipayMarketingActivityVoucherQueryResponseModel&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<AlipayMarketingActivityVoucherQueryResponseModel> queryWithHttpInfo(String activityId, String merchantAccessMode, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = queryValidateBeforeCall(activityId, merchantAccessMode, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherQueryResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayMarketingActivityVoucherQueryDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 查询支付券详情 (asynchronously)
       * 通过此接口可查询支付券活动信息，包括活动的配置信息以及活动概况数据。
       * @param activityId 活动id (optional)
       * @param merchantAccessMode 商户接入模式。 (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 activityId, String merchantAccessMode, final ApiCallback<AlipayMarketingActivityVoucherQueryResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = queryValidateBeforeCall(activityId, merchantAccessMode, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherQueryResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call queryAsync(String activityId, String merchantAccessMode, final ApiCallback<AlipayMarketingActivityVoucherQueryResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = queryValidateBeforeCall(activityId, merchantAccessMode, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherQueryResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for send
       * @param alipayMarketingActivityVoucherSendModel  (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 sendCall(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, 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() : alipayMarketingActivityVoucherSendModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/send";
  
          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 sendValidateBeforeCall(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = sendCall(alipayMarketingActivityVoucherSendModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 发放支付券
       * API完成制券后，可使用发放支付券接口发券。通过调用此接口可发放支付券给指定用户，发券场景可以是小程序、H5、APP等。
       * @param alipayMarketingActivityVoucherSendModel  (optional)
       * @return AlipayMarketingActivityVoucherSendResponseModel
       * @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 AlipayMarketingActivityVoucherSendResponseModel send(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherSendResponseModel> localVarResp = sendWithHttpInfo(alipayMarketingActivityVoucherSendModel, null);
          return localVarResp.getData();
      }
  
      public AlipayMarketingActivityVoucherSendResponseModel send(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<AlipayMarketingActivityVoucherSendResponseModel> localVarResp = sendWithHttpInfo(alipayMarketingActivityVoucherSendModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 发放支付券
       * API完成制券后，可使用发放支付券接口发券。通过调用此接口可发放支付券给指定用户，发券场景可以是小程序、H5、APP等。
       * @param alipayMarketingActivityVoucherSendModel  (optional)
       * @return ApiResponse&lt;AlipayMarketingActivityVoucherSendResponseModel&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<AlipayMarketingActivityVoucherSendResponseModel> sendWithHttpInfo(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = sendValidateBeforeCall(alipayMarketingActivityVoucherSendModel, null, customizedParams);
          try {
              Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherSendResponseModel>(){}.getType();
              return localVarApiClient.execute(localVarCall, localVarReturnType);
          } catch (ApiException e) {
              try {
                  e.setErrorObject(localVarApiClient.getJSON().getGson().fromJson(e.getResponseBody(), new TypeToken<AlipayMarketingActivityVoucherSendDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 发放支付券 (asynchronously)
       * API完成制券后，可使用发放支付券接口发券。通过调用此接口可发放支付券给指定用户，发券场景可以是小程序、H5、APP等。
       * @param alipayMarketingActivityVoucherSendModel  (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 sendAsync(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, final ApiCallback<AlipayMarketingActivityVoucherSendResponseModel> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = sendValidateBeforeCall(alipayMarketingActivityVoucherSendModel, _callback, null);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherSendResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call sendAsync(AlipayMarketingActivityVoucherSendModel alipayMarketingActivityVoucherSendModel, final ApiCallback<AlipayMarketingActivityVoucherSendResponseModel> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = sendValidateBeforeCall(alipayMarketingActivityVoucherSendModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<AlipayMarketingActivityVoucherSendResponseModel>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
      /**
       * Build call for stop
       * @param alipayMarketingActivityVoucherStopModel  (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 stopCall(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, 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() : alipayMarketingActivityVoucherStopModel;
  
          // create path and map variables
          String localVarPath = "/v3/alipay/marketing/activity/voucher/stop";
  
          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 stopValidateBeforeCall(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, final ApiCallback _callback, CustomizedParams customizedParams) throws ApiException {
          
  
          okhttp3.Call localVarCall = stopCall(alipayMarketingActivityVoucherStopModel, _callback, customizedParams);
          return localVarCall;
  
      }
  
      /**
       * 停止支付券
       * 商家调用该接口停止支付券。 停止支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.stopped消息接口异步发送停止活动成功事件。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherStopModel  (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 stop(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel) throws ApiException {
          ApiResponse<Object> localVarResp = stopWithHttpInfo(alipayMarketingActivityVoucherStopModel, null);
          return localVarResp.getData();
      }
  
      public Object stop(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, CustomizedParams customizedParams) throws ApiException {
          ApiResponse<Object> localVarResp = stopWithHttpInfo(alipayMarketingActivityVoucherStopModel, customizedParams);
          return localVarResp.getData();
      }
  
      /**
       * 停止支付券
       * 商家调用该接口停止支付券。 停止支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.stopped消息接口异步发送停止活动成功事件。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherStopModel  (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> stopWithHttpInfo(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, CustomizedParams customizedParams) throws ApiException {
          okhttp3.Call localVarCall = stopValidateBeforeCall(alipayMarketingActivityVoucherStopModel, 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<AlipayMarketingActivityVoucherStopDefaultResponse>(){}.getType()));
              } catch (Exception ex) {
                  AlipayLogger.logBizWarn(ex);
              }
              throw e;
          }
      }
  
      /**
       * 停止支付券 (asynchronously)
       * 商家调用该接口停止支付券。 停止支付券接口同步返回请求受理结果，后续通过alipay.marketing.activity.message.stopped消息接口异步发送停止活动成功事件。 如果成功消息长时间未送达，请联系相关技术人员。
       * @param alipayMarketingActivityVoucherStopModel  (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 stopAsync(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, final ApiCallback<Object> _callback) throws ApiException {
  
          okhttp3.Call localVarCall = stopValidateBeforeCall(alipayMarketingActivityVoucherStopModel, _callback, null);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  
      @Deprecated
      public okhttp3.Call stopAsync(AlipayMarketingActivityVoucherStopModel alipayMarketingActivityVoucherStopModel, final ApiCallback<Object> _callback, CustomizedParams customizedParams) throws ApiException {
  
          okhttp3.Call localVarCall = stopValidateBeforeCall(alipayMarketingActivityVoucherStopModel, _callback, customizedParams);
          Type localVarReturnType = new TypeToken<Object>(){}.getType();
          localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
          return localVarCall;
      }
  }
  