九州仙境 v3.0.0版本的 MD5 值为:7b5ce5daab0f4a38a386ae4309157477

以下内容为反编译后的 CashCouponsService.java 源代码,内容仅作参考


package com.wechat.pay.java.service.cashcoupons;

import com.alipay.sdk.m.p0.c;
import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.http.Constant;
import com.wechat.pay.java.core.http.DefaultHttpClientBuilder;
import com.wechat.pay.java.core.http.HostName;
import com.wechat.pay.java.core.http.HttpClient;
import com.wechat.pay.java.core.http.HttpHeaders;
import com.wechat.pay.java.core.http.HttpMethod;
import com.wechat.pay.java.core.http.HttpRequest;
import com.wechat.pay.java.core.http.JsonRequestBody;
import com.wechat.pay.java.core.http.MediaType;
import com.wechat.pay.java.core.http.QueryParameter;
import com.wechat.pay.java.core.http.RequestBody;
import com.wechat.pay.java.core.http.UrlEncoder;
import com.wechat.pay.java.core.util.GsonUtil;
import com.wechat.pay.java.service.cashcoupons.model.AvailableMerchantCollection;
import com.wechat.pay.java.service.cashcoupons.model.AvailableSingleitemCollection;
import com.wechat.pay.java.service.cashcoupons.model.Callback;
import com.wechat.pay.java.service.cashcoupons.model.Coupon;
import com.wechat.pay.java.service.cashcoupons.model.CouponCollection;
import com.wechat.pay.java.service.cashcoupons.model.CreateCouponStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.CreateCouponStockResponse;
import com.wechat.pay.java.service.cashcoupons.model.ListAvailableMerchantsRequest;
import com.wechat.pay.java.service.cashcoupons.model.ListAvailableSingleitemsRequest;
import com.wechat.pay.java.service.cashcoupons.model.ListCouponsByFilterRequest;
import com.wechat.pay.java.service.cashcoupons.model.ListStocksRequest;
import com.wechat.pay.java.service.cashcoupons.model.PauseStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.PauseStockResponse;
import com.wechat.pay.java.service.cashcoupons.model.QueryCallbackRequest;
import com.wechat.pay.java.service.cashcoupons.model.QueryCouponRequest;
import com.wechat.pay.java.service.cashcoupons.model.QueryStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.RefundFlowRequest;
import com.wechat.pay.java.service.cashcoupons.model.RefundFlowResponse;
import com.wechat.pay.java.service.cashcoupons.model.RestartStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.RestartStockResponse;
import com.wechat.pay.java.service.cashcoupons.model.SendCouponRequest;
import com.wechat.pay.java.service.cashcoupons.model.SendCouponResponse;
import com.wechat.pay.java.service.cashcoupons.model.SetCallbackRequest;
import com.wechat.pay.java.service.cashcoupons.model.SetCallbackResponse;
import com.wechat.pay.java.service.cashcoupons.model.StartStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.StartStockResponse;
import com.wechat.pay.java.service.cashcoupons.model.Stock;
import com.wechat.pay.java.service.cashcoupons.model.StockCollection;
import com.wechat.pay.java.service.cashcoupons.model.StopStockRequest;
import com.wechat.pay.java.service.cashcoupons.model.StopStockResponse;
import com.wechat.pay.java.service.cashcoupons.model.UseFlowRequest;
import com.wechat.pay.java.service.cashcoupons.model.UseFlowResponse;
import java.util.Objects;
public class CashCouponsService {
    private final HostName hostName;
    private final HttpClient httpClient;

    private CashCouponsService(HttpClient httpClient, HostName hostName) {
        this.httpClient = (HttpClient) Objects.requireNonNull(httpClient);
        this.hostName = hostName;
    }

    public static class Builder {
        private HostName hostName;
        private HttpClient httpClient;

        public Builder config(Config config) {
            this.httpClient = new DefaultHttpClientBuilder().config(config).build();
            return this;
        }

        public Builder hostName(HostName hostName) {
            this.hostName = hostName;
            return this;
        }

        public Builder httpClient(HttpClient httpClient) {
            this.httpClient = httpClient;
            return this;
        }

        public CashCouponsService build() {
            return new CashCouponsService(this.httpClient, this.hostName);
        }
    }

    public Callback queryCallback(QueryCallbackRequest queryCallbackRequest) {
        QueryParameter queryParameter = new QueryParameter();
        if (queryCallbackRequest.getMchid() != null) {
            queryParameter.add("mchid", UrlEncoder.urlEncode(queryCallbackRequest.getMchid()));
        }
        String str = "https://api.mch.weixin.qq.com/v3/marketing/favor/callbacks" + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (Callback) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), Callback.class).getServiceResponse();
    }

    public SetCallbackResponse setCallback(SetCallbackRequest setCallbackRequest) {
        String replaceFirst = this.hostName != null ? "https://api.mch.weixin.qq.com/v3/marketing/favor/callbacks".replaceFirst(HostName.API.getValue(), this.hostName.getValue()) : "https://api.mch.weixin.qq.com/v3/marketing/favor/callbacks";
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (SetCallbackResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replaceFirst).headers(httpHeaders).body(createRequestBody(setCallbackRequest)).build(), SetCallbackResponse.class).getServiceResponse();
    }

    public CouponCollection listCouponsByFilter(ListCouponsByFilterRequest listCouponsByFilterRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/users/{openid}/coupons".replace("{openid}", UrlEncoder.urlEncode(listCouponsByFilterRequest.getOpenid()));
        QueryParameter queryParameter = new QueryParameter();
        if (listCouponsByFilterRequest.getAppid() != null) {
            queryParameter.add(c.d, UrlEncoder.urlEncode(listCouponsByFilterRequest.getAppid()));
        }
        if (listCouponsByFilterRequest.getStockId() != null) {
            queryParameter.add("stock_id", UrlEncoder.urlEncode(listCouponsByFilterRequest.getStockId()));
        }
        if (listCouponsByFilterRequest.getStatus() != null) {
            queryParameter.add("status", UrlEncoder.urlEncode(listCouponsByFilterRequest.getStatus()));
        }
        if (listCouponsByFilterRequest.getCreatorMchid() != null) {
            queryParameter.add("creator_mchid", UrlEncoder.urlEncode(listCouponsByFilterRequest.getCreatorMchid()));
        }
        if (listCouponsByFilterRequest.getSenderMchid() != null) {
            queryParameter.add("sender_mchid", UrlEncoder.urlEncode(listCouponsByFilterRequest.getSenderMchid()));
        }
        if (listCouponsByFilterRequest.getAvailableMchid() != null) {
            queryParameter.add("available_mchid", UrlEncoder.urlEncode(listCouponsByFilterRequest.getAvailableMchid()));
        }
        if (listCouponsByFilterRequest.getOffset() != null) {
            queryParameter.add("offset", UrlEncoder.urlEncode(listCouponsByFilterRequest.getOffset().toString()));
        }
        if (listCouponsByFilterRequest.getLimit() != null) {
            queryParameter.add("limit", UrlEncoder.urlEncode(listCouponsByFilterRequest.getLimit().toString()));
        }
        String str = replace + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (CouponCollection) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), CouponCollection.class).getServiceResponse();
    }

    public Coupon queryCoupon(QueryCouponRequest queryCouponRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/users/{openid}/coupons/{coupon_id}".replace("{coupon_id}", UrlEncoder.urlEncode(queryCouponRequest.getCouponId())).replace("{openid}", UrlEncoder.urlEncode(queryCouponRequest.getOpenid()));
        QueryParameter queryParameter = new QueryParameter();
        if (queryCouponRequest.getAppid() != null) {
            queryParameter.add(c.d, UrlEncoder.urlEncode(queryCouponRequest.getAppid()));
        }
        String str = replace + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (Coupon) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), Coupon.class).getServiceResponse();
    }

    public SendCouponResponse sendCoupon(SendCouponRequest sendCouponRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/users/{openid}/coupons".replace("{openid}", UrlEncoder.urlEncode(sendCouponRequest.getOpenid()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (SendCouponResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replace).headers(httpHeaders).body(createRequestBody(sendCouponRequest)).build(), SendCouponResponse.class).getServiceResponse();
    }

    public CreateCouponStockResponse createCouponStock(CreateCouponStockRequest createCouponStockRequest) {
        String replaceFirst = this.hostName != null ? "https://api.mch.weixin.qq.com/v3/marketing/favor/coupon-stocks".replaceFirst(HostName.API.getValue(), this.hostName.getValue()) : "https://api.mch.weixin.qq.com/v3/marketing/favor/coupon-stocks";
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (CreateCouponStockResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replaceFirst).headers(httpHeaders).body(createRequestBody(createCouponStockRequest)).build(), CreateCouponStockResponse.class).getServiceResponse();
    }

    public AvailableMerchantCollection listAvailableMerchants(ListAvailableMerchantsRequest listAvailableMerchantsRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/merchants".replace("{stock_id}", UrlEncoder.urlEncode(listAvailableMerchantsRequest.getStockId()));
        QueryParameter queryParameter = new QueryParameter();
        if (listAvailableMerchantsRequest.getOffset() != null) {
            queryParameter.add("offset", UrlEncoder.urlEncode(listAvailableMerchantsRequest.getOffset().toString()));
        }
        if (listAvailableMerchantsRequest.getLimit() != null) {
            queryParameter.add("limit", UrlEncoder.urlEncode(listAvailableMerchantsRequest.getLimit().toString()));
        }
        if (listAvailableMerchantsRequest.getStockCreatorMchid() != null) {
            queryParameter.add("stock_creator_mchid", UrlEncoder.urlEncode(listAvailableMerchantsRequest.getStockCreatorMchid()));
        }
        String str = replace + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (AvailableMerchantCollection) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), AvailableMerchantCollection.class).getServiceResponse();
    }

    public AvailableSingleitemCollection listAvailableSingleitems(ListAvailableSingleitemsRequest listAvailableSingleitemsRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/items".replace("{stock_id}", UrlEncoder.urlEncode(listAvailableSingleitemsRequest.getStockId()));
        QueryParameter queryParameter = new QueryParameter();
        if (listAvailableSingleitemsRequest.getOffset() != null) {
            queryParameter.add("offset", UrlEncoder.urlEncode(listAvailableSingleitemsRequest.getOffset().toString()));
        }
        if (listAvailableSingleitemsRequest.getLimit() != null) {
            queryParameter.add("limit", UrlEncoder.urlEncode(listAvailableSingleitemsRequest.getLimit().toString()));
        }
        if (listAvailableSingleitemsRequest.getStockCreatorMchid() != null) {
            queryParameter.add("stock_creator_mchid", UrlEncoder.urlEncode(listAvailableSingleitemsRequest.getStockCreatorMchid()));
        }
        String str = replace + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (AvailableSingleitemCollection) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), AvailableSingleitemCollection.class).getServiceResponse();
    }

    public StockCollection listStocks(ListStocksRequest listStocksRequest) {
        QueryParameter queryParameter = new QueryParameter();
        if (listStocksRequest.getOffset() != null) {
            queryParameter.add("offset", UrlEncoder.urlEncode(listStocksRequest.getOffset().toString()));
        }
        if (listStocksRequest.getLimit() != null) {
            queryParameter.add("limit", UrlEncoder.urlEncode(listStocksRequest.getLimit().toString()));
        }
        if (listStocksRequest.getStockCreatorMchid() != null) {
            queryParameter.add("stock_creator_mchid", UrlEncoder.urlEncode(listStocksRequest.getStockCreatorMchid()));
        }
        if (listStocksRequest.getCreateStartTime() != null) {
            queryParameter.add("create_start_time", UrlEncoder.urlEncode(listStocksRequest.getCreateStartTime()));
        }
        if (listStocksRequest.getCreateEndTime() != null) {
            queryParameter.add("create_end_time", UrlEncoder.urlEncode(listStocksRequest.getCreateEndTime()));
        }
        if (listStocksRequest.getStatus() != null) {
            queryParameter.add("status", UrlEncoder.urlEncode(listStocksRequest.getStatus()));
        }
        String str = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks" + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (StockCollection) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), StockCollection.class).getServiceResponse();
    }

    public PauseStockResponse pauseStock(PauseStockRequest pauseStockRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/pause".replace("{stock_id}", UrlEncoder.urlEncode(pauseStockRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (PauseStockResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replace).headers(httpHeaders).body(createRequestBody(pauseStockRequest)).build(), PauseStockResponse.class).getServiceResponse();
    }

    public Stock queryStock(QueryStockRequest queryStockRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}".replace("{stock_id}", UrlEncoder.urlEncode(queryStockRequest.getStockId()));
        QueryParameter queryParameter = new QueryParameter();
        if (queryStockRequest.getStockCreatorMchid() != null) {
            queryParameter.add("stock_creator_mchid", UrlEncoder.urlEncode(queryStockRequest.getStockCreatorMchid()));
        }
        String str = replace + queryParameter.getQueryStr();
        if (this.hostName != null) {
            str = str.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (Stock) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(str).headers(httpHeaders).build(), Stock.class).getServiceResponse();
    }

    public RefundFlowResponse refundFlow(RefundFlowRequest refundFlowRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/refund-flow".replace("{stock_id}", UrlEncoder.urlEncode(refundFlowRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (RefundFlowResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(replace).headers(httpHeaders).build(), RefundFlowResponse.class).getServiceResponse();
    }

    public RestartStockResponse restartStock(RestartStockRequest restartStockRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/restart".replace("{stock_id}", UrlEncoder.urlEncode(restartStockRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (RestartStockResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replace).headers(httpHeaders).body(createRequestBody(restartStockRequest)).build(), RestartStockResponse.class).getServiceResponse();
    }

    public StartStockResponse startStock(StartStockRequest startStockRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/start".replace("{stock_id}", UrlEncoder.urlEncode(startStockRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (StartStockResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replace).headers(httpHeaders).body(createRequestBody(startStockRequest)).build(), StartStockResponse.class).getServiceResponse();
    }

    public StopStockResponse stopStock(StopStockRequest stopStockRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/stop".replace("{stock_id}", UrlEncoder.urlEncode(stopStockRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (StopStockResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.POST).url(replace).headers(httpHeaders).body(createRequestBody(stopStockRequest)).build(), StopStockResponse.class).getServiceResponse();
    }

    public UseFlowResponse useFlow(UseFlowRequest useFlowRequest) {
        String replace = "https://api.mch.weixin.qq.com/v3/marketing/favor/stocks/{stock_id}/use-flow".replace("{stock_id}", UrlEncoder.urlEncode(useFlowRequest.getStockId()));
        if (this.hostName != null) {
            replace = replace.replaceFirst(HostName.API.getValue(), this.hostName.getValue());
        }
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.addHeader(Constant.ACCEPT, MediaType.APPLICATION_JSON.getValue());
        httpHeaders.addHeader(Constant.CONTENT_TYPE, MediaType.APPLICATION_JSON.getValue());
        return (UseFlowResponse) this.httpClient.execute(new HttpRequest.Builder().httpMethod(HttpMethod.GET).url(replace).headers(httpHeaders).build(), UseFlowResponse.class).getServiceResponse();
    }

    private RequestBody createRequestBody(Object obj) {
        return new JsonRequestBody.Builder().body(GsonUtil.toJson(obj)).build();
    }
}