/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

    package com.ywt.gapi.base.wechat;

import org.apache.dubbo.common.stream.StreamObserver;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.PathResolver;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.ServerService;
import org.apache.dubbo.rpc.TriRpcStatus;
import org.apache.dubbo.rpc.model.MethodDescriptor;
import org.apache.dubbo.rpc.model.ServiceDescriptor;
import org.apache.dubbo.rpc.model.StubMethodDescriptor;
import org.apache.dubbo.rpc.model.StubServiceDescriptor;
import org.apache.dubbo.rpc.stub.BiStreamMethodHandler;
import org.apache.dubbo.rpc.stub.ServerStreamMethodHandler;
import org.apache.dubbo.rpc.stub.StubInvocationUtil;
import org.apache.dubbo.rpc.stub.StubInvoker;
import org.apache.dubbo.rpc.stub.StubMethodHandler;
import org.apache.dubbo.rpc.stub.StubSuppliers;
import org.apache.dubbo.rpc.stub.UnaryStubMethodHandler;

import com.google.protobuf.Message;

import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.concurrent.CompletableFuture;

public final class DubboWeChatServiceTriple {

    public static final String SERVICE_NAME = WeChatService.SERVICE_NAME;

    private static final StubServiceDescriptor serviceDescriptor = new StubServiceDescriptor(SERVICE_NAME,WeChatService.class);

    static {
        org.apache.dubbo.rpc.protocol.tri.service.SchemaDescriptorRegistry.addSchemaDescriptor(SERVICE_NAME,WechatProto.getDescriptor());
        StubSuppliers.addSupplier(SERVICE_NAME, DubboWeChatServiceTriple::newStub);
        StubSuppliers.addSupplier(WeChatService.JAVA_SERVICE_NAME,  DubboWeChatServiceTriple::newStub);
        StubSuppliers.addDescriptor(SERVICE_NAME, serviceDescriptor);
        StubSuppliers.addDescriptor(WeChatService.JAVA_SERVICE_NAME, serviceDescriptor);
    }

    @SuppressWarnings("all")
    public static WeChatService newStub(Invoker<?> invoker) {
        return new WeChatServiceStub((Invoker<WeChatService>)invoker);
    }

    /**
         * <pre>
         * 换取access_token的票据
         * </pre>
         */
    private static final StubMethodDescriptor getUserInfoByCodeMethod = new StubMethodDescriptor("getUserInfoByCode",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByCodeAsyncMethod = new StubMethodDescriptor("getUserInfoByCode",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByCodeProxyAsyncMethod = new StubMethodDescriptor("getUserInfoByCodeAsync",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse::parseFrom);

    /**
         * <pre>
         * 终端类型
         * </pre>
         */
    private static final StubMethodDescriptor getAccessTokenMethod = new StubMethodDescriptor("getAccessToken",
    com.ywt.gapi.base.wechat.GetAccessTokenRequest.class, com.ywt.gapi.base.wechat.GetAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getAccessTokenAsyncMethod = new StubMethodDescriptor("getAccessToken",
    com.ywt.gapi.base.wechat.GetAccessTokenRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getAccessTokenProxyAsyncMethod = new StubMethodDescriptor("getAccessTokenAsync",
    com.ywt.gapi.base.wechat.GetAccessTokenRequest.class, com.ywt.gapi.base.wechat.GetAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTplMsgMethod = new StubMethodDescriptor("sendOfficialTplMsg",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTplMsgAsyncMethod = new StubMethodDescriptor("sendOfficialTplMsg",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTplMsgProxyAsyncMethod = new StubMethodDescriptor("sendOfficialTplMsgAsync",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor getWxImageConfigMethod = new StubMethodDescriptor("getWxImageConfig",
    com.ywt.gapi.base.wechat.GetWxImageConfigRequest.class, com.ywt.gapi.base.wechat.GetWxImageConfigResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxImageConfigRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxImageConfigResponse::parseFrom);

    private static final StubMethodDescriptor getWxImageConfigAsyncMethod = new StubMethodDescriptor("getWxImageConfig",
    com.ywt.gapi.base.wechat.GetWxImageConfigRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxImageConfigRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxImageConfigResponse::parseFrom);

    private static final StubMethodDescriptor getWxImageConfigProxyAsyncMethod = new StubMethodDescriptor("getWxImageConfigAsync",
    com.ywt.gapi.base.wechat.GetWxImageConfigRequest.class, com.ywt.gapi.base.wechat.GetWxImageConfigResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxImageConfigRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxImageConfigResponse::parseFrom);

    private static final StubMethodDescriptor sendSubscribeCustomMsgMethod = new StubMethodDescriptor("sendSubscribeCustomMsg",
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest.class, com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendSubscribeCustomMsgAsyncMethod = new StubMethodDescriptor("sendSubscribeCustomMsg",
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendSubscribeCustomMsgProxyAsyncMethod = new StubMethodDescriptor("sendSubscribeCustomMsgAsync",
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest.class, com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeMethod = new StubMethodDescriptor("createQrCode",
    com.ywt.gapi.base.wechat.CreateQrCodeRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeAsyncMethod = new StubMethodDescriptor("createQrCode",
    com.ywt.gapi.base.wechat.CreateQrCodeRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeProxyAsyncMethod = new StubMethodDescriptor("createQrCodeAsync",
    com.ywt.gapi.base.wechat.CreateQrCodeRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeStrSceneMethod = new StubMethodDescriptor("createQrCodeStrScene",
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeStrSceneAsyncMethod = new StubMethodDescriptor("createQrCodeStrScene",
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeStrSceneProxyAsyncMethod = new StubMethodDescriptor("createQrCodeStrSceneAsync",
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitMethod = new StubMethodDescriptor("createQrCodeLimit",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitAsyncMethod = new StubMethodDescriptor("createQrCodeLimit",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitProxyAsyncMethod = new StubMethodDescriptor("createQrCodeLimitAsync",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitStrSceneMethod = new StubMethodDescriptor("createQrCodeLimitStrScene",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitStrSceneAsyncMethod = new StubMethodDescriptor("createQrCodeLimitStrScene",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor createQrCodeLimitStrSceneProxyAsyncMethod = new StubMethodDescriptor("createQrCodeLimitStrSceneAsync",
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest.class, com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest::parseFrom,
    com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse::parseFrom);

    private static final StubMethodDescriptor getOpenIdByCodeMethod = new StubMethodDescriptor("getOpenIdByCode",
    com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest.class, com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse::parseFrom);

    private static final StubMethodDescriptor getOpenIdByCodeAsyncMethod = new StubMethodDescriptor("getOpenIdByCode",
    com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse::parseFrom);

    private static final StubMethodDescriptor getOpenIdByCodeProxyAsyncMethod = new StubMethodDescriptor("getOpenIdByCodeAsync",
    com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest.class, com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse::parseFrom);

    private static final StubMethodDescriptor getAccessTokenByAppIdMethod = new StubMethodDescriptor("getAccessTokenByAppId",
    com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest.class, com.ywt.gapi.base.wechat.GetAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getAccessTokenByAppIdAsyncMethod = new StubMethodDescriptor("getAccessTokenByAppId",
    com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getAccessTokenByAppIdProxyAsyncMethod = new StubMethodDescriptor("getAccessTokenByAppIdAsync",
    com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest.class, com.ywt.gapi.base.wechat.GetAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTemplateMsgByAppIdMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByAppId",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTemplateMsgByAppIdAsyncMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByAppId",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTemplateMsgByAppIdProxyAsyncMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByAppIdAsync",
    com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendCustomMessageMethod = new StubMethodDescriptor("sendCustomMessage",
    com.ywt.gapi.base.wechat.SendCustomMessageRequest.class, com.ywt.gapi.base.wechat.SendCustomMessageResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendCustomMessageRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendCustomMessageResponse::parseFrom);

    private static final StubMethodDescriptor sendCustomMessageAsyncMethod = new StubMethodDescriptor("sendCustomMessage",
    com.ywt.gapi.base.wechat.SendCustomMessageRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendCustomMessageRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendCustomMessageResponse::parseFrom);

    private static final StubMethodDescriptor sendCustomMessageProxyAsyncMethod = new StubMethodDescriptor("sendCustomMessageAsync",
    com.ywt.gapi.base.wechat.SendCustomMessageRequest.class, com.ywt.gapi.base.wechat.SendCustomMessageResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendCustomMessageRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendCustomMessageResponse::parseFrom);

    private static final StubMethodDescriptor getAppIdByInternalTerminalMethod = new StubMethodDescriptor("getAppIdByInternalTerminal",
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest.class, com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse::parseFrom);

    private static final StubMethodDescriptor getAppIdByInternalTerminalAsyncMethod = new StubMethodDescriptor("getAppIdByInternalTerminal",
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse::parseFrom);

    private static final StubMethodDescriptor getAppIdByInternalTerminalProxyAsyncMethod = new StubMethodDescriptor("getAppIdByInternalTerminalAsync",
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest.class, com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByCodeForWxMpMethod = new StubMethodDescriptor("getUserInfoByCodeForWxMp",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByCodeForWxMpAsyncMethod = new StubMethodDescriptor("getUserInfoByCodeForWxMp",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByCodeForWxMpProxyAsyncMethod = new StubMethodDescriptor("getUserInfoByCodeForWxMpAsync",
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse::parseFrom);

    /**
         * <pre>
         *  小程序获取解密的敏感数据
         * </pre>
         */
    private static final StubMethodDescriptor getWxMpDecryptedDataMethod = new StubMethodDescriptor("getWxMpDecryptedData",
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest.class, com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse::parseFrom);

    private static final StubMethodDescriptor getWxMpDecryptedDataAsyncMethod = new StubMethodDescriptor("getWxMpDecryptedData",
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse::parseFrom);

    private static final StubMethodDescriptor getWxMpDecryptedDataProxyAsyncMethod = new StubMethodDescriptor("getWxMpDecryptedDataAsync",
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest.class, com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse::parseFrom);

    /**
         * <pre>
         * 根据code拉取用户信息
         * </pre>
         */
    private static final StubMethodDescriptor getUserInfoByOpenIdMethod = new StubMethodDescriptor("getUserInfoByOpenId",
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByOpenIdAsyncMethod = new StubMethodDescriptor("getUserInfoByOpenId",
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse::parseFrom);

    private static final StubMethodDescriptor getUserInfoByOpenIdProxyAsyncMethod = new StubMethodDescriptor("getUserInfoByOpenIdAsync",
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest.class, com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse::parseFrom);

    /**
         * <pre>
         *  通过terminal发送公众号模板消息
         * </pre>
         */
    private static final StubMethodDescriptor sendOfficialTemplateMsgByTerminalMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByTerminal",
    com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTemplateMsgByTerminalAsyncMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByTerminal",
    com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    private static final StubMethodDescriptor sendOfficialTemplateMsgByTerminalProxyAsyncMethod = new StubMethodDescriptor("sendOfficialTemplateMsgByTerminalAsync",
    com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse::parseFrom);

    /**
         * <pre>
         * 根据终端类型发送小程序模板消息（旧）
         * </pre>
         */
    private static final StubMethodDescriptor sendMPTemplateMsgByTerminalMethod = new StubMethodDescriptor("sendMPTemplateMsgByTerminal",
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse::parseFrom);

    private static final StubMethodDescriptor sendMPTemplateMsgByTerminalAsyncMethod = new StubMethodDescriptor("sendMPTemplateMsgByTerminal",
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse::parseFrom);

    private static final StubMethodDescriptor sendMPTemplateMsgByTerminalProxyAsyncMethod = new StubMethodDescriptor("sendMPTemplateMsgByTerminalAsync",
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse::parseFrom);

    private static final StubMethodDescriptor decryptWxAppDataMethod = new StubMethodDescriptor("decryptWxAppData",
    com.ywt.gapi.base.wechat.DecryptWxAppDataRequest.class, com.ywt.gapi.base.wechat.DecryptWxAppDataResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.DecryptWxAppDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.DecryptWxAppDataResponse::parseFrom);

    private static final StubMethodDescriptor decryptWxAppDataAsyncMethod = new StubMethodDescriptor("decryptWxAppData",
    com.ywt.gapi.base.wechat.DecryptWxAppDataRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.DecryptWxAppDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.DecryptWxAppDataResponse::parseFrom);

    private static final StubMethodDescriptor decryptWxAppDataProxyAsyncMethod = new StubMethodDescriptor("decryptWxAppDataAsync",
    com.ywt.gapi.base.wechat.DecryptWxAppDataRequest.class, com.ywt.gapi.base.wechat.DecryptWxAppDataResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.DecryptWxAppDataRequest::parseFrom,
    com.ywt.gapi.base.wechat.DecryptWxAppDataResponse::parseFrom);

    /**
         * <pre>
         * 根据终端类型发送小程序订阅消息（新）
         * </pre>
         */
    private static final StubMethodDescriptor sendMPSubscribeMsgByTerminalMethod = new StubMethodDescriptor("sendMPSubscribeMsgByTerminal",
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse::parseFrom);

    private static final StubMethodDescriptor sendMPSubscribeMsgByTerminalAsyncMethod = new StubMethodDescriptor("sendMPSubscribeMsgByTerminal",
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse::parseFrom);

    private static final StubMethodDescriptor sendMPSubscribeMsgByTerminalProxyAsyncMethod = new StubMethodDescriptor("sendMPSubscribeMsgByTerminalAsync",
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest.class, com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest::parseFrom,
    com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse::parseFrom);

    /**
         * <pre>
         *  获取网页授权access_token
         * </pre>
         */
    private static final StubMethodDescriptor getWxWebAccessTokenMethod = new StubMethodDescriptor("getWxWebAccessToken",
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest.class, com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getWxWebAccessTokenAsyncMethod = new StubMethodDescriptor("getWxWebAccessToken",
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest.class, java.util.concurrent.CompletableFuture.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse::parseFrom);

    private static final StubMethodDescriptor getWxWebAccessTokenProxyAsyncMethod = new StubMethodDescriptor("getWxWebAccessTokenAsync",
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest.class, com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse.class, serviceDescriptor, MethodDescriptor.RpcType.UNARY,
    obj -> ((Message) obj).toByteArray(), obj -> ((Message) obj).toByteArray(), com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest::parseFrom,
    com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse::parseFrom);





    public static class WeChatServiceStub implements WeChatService{
        private final Invoker<WeChatService> invoker;

        public WeChatServiceStub(Invoker<WeChatService> invoker) {
            this.invoker = invoker;
        }

            /**
         * <pre>
         * 换取access_token的票据
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse getUserInfoByCode(com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse> getUserInfoByCodeAsync(com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeAsyncMethod, request);
        }

            /**
         * <pre>
         * 换取access_token的票据
         * </pre>
         */
        @Override
        public void getUserInfoByCode(com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeMethod , request, responseObserver);
        }
            /**
         * <pre>
         * 终端类型
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.GetAccessTokenResponse getAccessToken(com.ywt.gapi.base.wechat.GetAccessTokenRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAccessTokenMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetAccessTokenResponse> getAccessTokenAsync(com.ywt.gapi.base.wechat.GetAccessTokenRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAccessTokenAsyncMethod, request);
        }

            /**
         * <pre>
         * 终端类型
         * </pre>
         */
        @Override
        public void getAccessToken(com.ywt.gapi.base.wechat.GetAccessTokenRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getAccessTokenMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTplMsg(com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTplMsgMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> sendOfficialTplMsgAsync(com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTplMsgAsyncMethod, request);
        }

        @Override
        public void sendOfficialTplMsg(com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendOfficialTplMsgMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.GetWxImageConfigResponse getWxImageConfig(com.ywt.gapi.base.wechat.GetWxImageConfigRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxImageConfigMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetWxImageConfigResponse> getWxImageConfigAsync(com.ywt.gapi.base.wechat.GetWxImageConfigRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxImageConfigAsyncMethod, request);
        }

        @Override
        public void getWxImageConfig(com.ywt.gapi.base.wechat.GetWxImageConfigRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetWxImageConfigResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getWxImageConfigMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse sendSubscribeCustomMsg(com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendSubscribeCustomMsgMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse> sendSubscribeCustomMsgAsync(com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendSubscribeCustomMsgAsyncMethod, request);
        }

        @Override
        public void sendSubscribeCustomMsg(com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendSubscribeCustomMsgMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeResponse createQrCode(com.ywt.gapi.base.wechat.CreateQrCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.CreateQrCodeResponse> createQrCodeAsync(com.ywt.gapi.base.wechat.CreateQrCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeAsyncMethod, request);
        }

        @Override
        public void createQrCode(com.ywt.gapi.base.wechat.CreateQrCodeRequest request, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, createQrCodeMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse createQrCodeStrScene(com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeStrSceneMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse> createQrCodeStrSceneAsync(com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeStrSceneAsyncMethod, request);
        }

        @Override
        public void createQrCodeStrScene(com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest request, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, createQrCodeStrSceneMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse createQrCodeLimit(com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeLimitMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse> createQrCodeLimitAsync(com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeLimitAsyncMethod, request);
        }

        @Override
        public void createQrCodeLimit(com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest request, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, createQrCodeLimitMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse createQrCodeLimitStrScene(com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeLimitStrSceneMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse> createQrCodeLimitStrSceneAsync(com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest request){
            return StubInvocationUtil.unaryCall(invoker, createQrCodeLimitStrSceneAsyncMethod, request);
        }

        @Override
        public void createQrCodeLimitStrScene(com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest request, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, createQrCodeLimitStrSceneMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse getOpenIdByCode(com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, getOpenIdByCodeMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse> getOpenIdByCodeAsync(com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest request){
            return StubInvocationUtil.unaryCall(invoker, getOpenIdByCodeAsyncMethod, request);
        }

        @Override
        public void getOpenIdByCode(com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getOpenIdByCodeMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.GetAccessTokenResponse getAccessTokenByAppId(com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAccessTokenByAppIdMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetAccessTokenResponse> getAccessTokenByAppIdAsync(com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAccessTokenByAppIdAsyncMethod, request);
        }

        @Override
        public void getAccessTokenByAppId(com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getAccessTokenByAppIdMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTemplateMsgByAppId(com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByAppIdMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> sendOfficialTemplateMsgByAppIdAsync(com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByAppIdAsyncMethod, request);
        }

        @Override
        public void sendOfficialTemplateMsgByAppId(com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByAppIdMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.SendCustomMessageResponse sendCustomMessage(com.ywt.gapi.base.wechat.SendCustomMessageRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendCustomMessageMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendCustomMessageResponse> sendCustomMessageAsync(com.ywt.gapi.base.wechat.SendCustomMessageRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendCustomMessageAsyncMethod, request);
        }

        @Override
        public void sendCustomMessage(com.ywt.gapi.base.wechat.SendCustomMessageRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendCustomMessageResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendCustomMessageMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse getAppIdByInternalTerminal(com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAppIdByInternalTerminalMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse> getAppIdByInternalTerminalAsync(com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, getAppIdByInternalTerminalAsyncMethod, request);
        }

        @Override
        public void getAppIdByInternalTerminal(com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getAppIdByInternalTerminalMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse getUserInfoByCodeForWxMp(com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeForWxMpMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse> getUserInfoByCodeForWxMpAsync(com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeForWxMpAsyncMethod, request);
        }

        @Override
        public void getUserInfoByCodeForWxMp(com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getUserInfoByCodeForWxMpMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  小程序获取解密的敏感数据
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse getWxMpDecryptedData(com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxMpDecryptedDataMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse> getWxMpDecryptedDataAsync(com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxMpDecryptedDataAsyncMethod, request);
        }

            /**
         * <pre>
         *  小程序获取解密的敏感数据
         * </pre>
         */
        @Override
        public void getWxMpDecryptedData(com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getWxMpDecryptedDataMethod , request, responseObserver);
        }
            /**
         * <pre>
         * 根据code拉取用户信息
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse getUserInfoByOpenId(com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByOpenIdMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse> getUserInfoByOpenIdAsync(com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest request){
            return StubInvocationUtil.unaryCall(invoker, getUserInfoByOpenIdAsyncMethod, request);
        }

            /**
         * <pre>
         * 根据code拉取用户信息
         * </pre>
         */
        @Override
        public void getUserInfoByOpenId(com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getUserInfoByOpenIdMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  通过terminal发送公众号模板消息
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByTerminalMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> sendOfficialTemplateMsgByTerminalAsync(com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByTerminalAsyncMethod, request);
        }

            /**
         * <pre>
         *  通过terminal发送公众号模板消息
         * </pre>
         */
        @Override
        public void sendOfficialTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendOfficialTemplateMsgByTerminalMethod , request, responseObserver);
        }
            /**
         * <pre>
         * 根据终端类型发送小程序模板消息（旧）
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse sendMPTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendMPTemplateMsgByTerminalMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse> sendMPTemplateMsgByTerminalAsync(com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendMPTemplateMsgByTerminalAsyncMethod, request);
        }

            /**
         * <pre>
         * 根据终端类型发送小程序模板消息（旧）
         * </pre>
         */
        @Override
        public void sendMPTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendMPTemplateMsgByTerminalMethod , request, responseObserver);
        }
        @Override
        public com.ywt.gapi.base.wechat.DecryptWxAppDataResponse decryptWxAppData(com.ywt.gapi.base.wechat.DecryptWxAppDataRequest request){
            return StubInvocationUtil.unaryCall(invoker, decryptWxAppDataMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.DecryptWxAppDataResponse> decryptWxAppDataAsync(com.ywt.gapi.base.wechat.DecryptWxAppDataRequest request){
            return StubInvocationUtil.unaryCall(invoker, decryptWxAppDataAsyncMethod, request);
        }

        @Override
        public void decryptWxAppData(com.ywt.gapi.base.wechat.DecryptWxAppDataRequest request, StreamObserver<com.ywt.gapi.base.wechat.DecryptWxAppDataResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, decryptWxAppDataMethod , request, responseObserver);
        }
            /**
         * <pre>
         * 根据终端类型发送小程序订阅消息（新）
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse sendMPSubscribeMsgByTerminal(com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendMPSubscribeMsgByTerminalMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse> sendMPSubscribeMsgByTerminalAsync(com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest request){
            return StubInvocationUtil.unaryCall(invoker, sendMPSubscribeMsgByTerminalAsyncMethod, request);
        }

            /**
         * <pre>
         * 根据终端类型发送小程序订阅消息（新）
         * </pre>
         */
        @Override
        public void sendMPSubscribeMsgByTerminal(com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest request, StreamObserver<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, sendMPSubscribeMsgByTerminalMethod , request, responseObserver);
        }
            /**
         * <pre>
         *  获取网页授权access_token
         * </pre>
         */
        @Override
        public com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse getWxWebAccessToken(com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxWebAccessTokenMethod, request);
        }

        public CompletableFuture<com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse> getWxWebAccessTokenAsync(com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest request){
            return StubInvocationUtil.unaryCall(invoker, getWxWebAccessTokenAsyncMethod, request);
        }

            /**
         * <pre>
         *  获取网页授权access_token
         * </pre>
         */
        @Override
        public void getWxWebAccessToken(com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest request, StreamObserver<com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse> responseObserver){
            StubInvocationUtil.unaryCall(invoker, getWxWebAccessTokenMethod , request, responseObserver);
        }



    }

    public static abstract class WeChatServiceImplBase implements WeChatService, ServerService<WeChatService> {

        private <T, R> BiConsumer<T, StreamObserver<R>> syncToAsync(java.util.function.Function<T, R> syncFun) {
            return new BiConsumer<T, StreamObserver<R>>() {
                @Override
                public void accept(T t, StreamObserver<R> observer) {
                    try {
                        R ret = syncFun.apply(t);
                        observer.onNext(ret);
                        observer.onCompleted();
                    } catch (Throwable e) {
                        observer.onError(e);
                    }
                }
            };
        }

        @Override
        public final Invoker<WeChatService> getInvoker(URL url) {
            PathResolver pathResolver = url.getOrDefaultFrameworkModel()
            .getExtensionLoader(PathResolver.class)
            .getDefaultExtension();
            Map<String,StubMethodHandler<?, ?>> handlers = new HashMap<>();

            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByCode" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByCodeAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAccessToken" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAccessTokenAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTplMsg" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTplMsgAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxImageConfig" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxImageConfigAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendSubscribeCustomMsg" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendSubscribeCustomMsgAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCode" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeStrScene" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeStrSceneAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeLimit" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeLimitAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeLimitStrScene" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/createQrCodeLimitStrSceneAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getOpenIdByCode" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getOpenIdByCodeAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAccessTokenByAppId" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAccessTokenByAppIdAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTemplateMsgByAppId" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTemplateMsgByAppIdAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendCustomMessage" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendCustomMessageAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAppIdByInternalTerminal" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getAppIdByInternalTerminalAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByCodeForWxMp" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByCodeForWxMpAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxMpDecryptedData" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxMpDecryptedDataAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByOpenId" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getUserInfoByOpenIdAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTemplateMsgByTerminal" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendOfficialTemplateMsgByTerminalAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendMPTemplateMsgByTerminal" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendMPTemplateMsgByTerminalAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/decryptWxAppData" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/decryptWxAppDataAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendMPSubscribeMsgByTerminal" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/sendMPSubscribeMsgByTerminalAsync" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxWebAccessToken" );
            pathResolver.addNativeStub( "/" + SERVICE_NAME + "/getWxWebAccessTokenAsync" );

            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse>> getUserInfoByCodeFunc = this::getUserInfoByCode;
            handlers.put(getUserInfoByCodeMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByCodeFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse>> getUserInfoByCodeAsyncFunc = syncToAsync(this::getUserInfoByCode);
            handlers.put(getUserInfoByCodeProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByCodeAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAccessTokenRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse>> getAccessTokenFunc = this::getAccessToken;
            handlers.put(getAccessTokenMethod.getMethodName(), new UnaryStubMethodHandler<>(getAccessTokenFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAccessTokenRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse>> getAccessTokenAsyncFunc = syncToAsync(this::getAccessToken);
            handlers.put(getAccessTokenProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getAccessTokenAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTplMsgFunc = this::sendOfficialTplMsg;
            handlers.put(sendOfficialTplMsgMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTplMsgFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTplMsgAsyncFunc = syncToAsync(this::sendOfficialTplMsg);
            handlers.put(sendOfficialTplMsgProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTplMsgAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxImageConfigRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxImageConfigResponse>> getWxImageConfigFunc = this::getWxImageConfig;
            handlers.put(getWxImageConfigMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxImageConfigFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxImageConfigRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxImageConfigResponse>> getWxImageConfigAsyncFunc = syncToAsync(this::getWxImageConfig);
            handlers.put(getWxImageConfigProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxImageConfigAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest, StreamObserver<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse>> sendSubscribeCustomMsgFunc = this::sendSubscribeCustomMsg;
            handlers.put(sendSubscribeCustomMsgMethod.getMethodName(), new UnaryStubMethodHandler<>(sendSubscribeCustomMsgFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest, StreamObserver<com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse>> sendSubscribeCustomMsgAsyncFunc = syncToAsync(this::sendSubscribeCustomMsg);
            handlers.put(sendSubscribeCustomMsgProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendSubscribeCustomMsgAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeResponse>> createQrCodeFunc = this::createQrCode;
            handlers.put(createQrCodeMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeResponse>> createQrCodeAsyncFunc = syncToAsync(this::createQrCode);
            handlers.put(createQrCodeProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse>> createQrCodeStrSceneFunc = this::createQrCodeStrScene;
            handlers.put(createQrCodeStrSceneMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeStrSceneFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse>> createQrCodeStrSceneAsyncFunc = syncToAsync(this::createQrCodeStrScene);
            handlers.put(createQrCodeStrSceneProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeStrSceneAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse>> createQrCodeLimitFunc = this::createQrCodeLimit;
            handlers.put(createQrCodeLimitMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeLimitFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse>> createQrCodeLimitAsyncFunc = syncToAsync(this::createQrCodeLimit);
            handlers.put(createQrCodeLimitProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeLimitAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse>> createQrCodeLimitStrSceneFunc = this::createQrCodeLimitStrScene;
            handlers.put(createQrCodeLimitStrSceneMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeLimitStrSceneFunc));
            BiConsumer<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest, StreamObserver<com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse>> createQrCodeLimitStrSceneAsyncFunc = syncToAsync(this::createQrCodeLimitStrScene);
            handlers.put(createQrCodeLimitStrSceneProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(createQrCodeLimitStrSceneAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse>> getOpenIdByCodeFunc = this::getOpenIdByCode;
            handlers.put(getOpenIdByCodeMethod.getMethodName(), new UnaryStubMethodHandler<>(getOpenIdByCodeFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest, StreamObserver<com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse>> getOpenIdByCodeAsyncFunc = syncToAsync(this::getOpenIdByCode);
            handlers.put(getOpenIdByCodeProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getOpenIdByCodeAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse>> getAccessTokenByAppIdFunc = this::getAccessTokenByAppId;
            handlers.put(getAccessTokenByAppIdMethod.getMethodName(), new UnaryStubMethodHandler<>(getAccessTokenByAppIdFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAccessTokenResponse>> getAccessTokenByAppIdAsyncFunc = syncToAsync(this::getAccessTokenByAppId);
            handlers.put(getAccessTokenByAppIdProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getAccessTokenByAppIdAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTemplateMsgByAppIdFunc = this::sendOfficialTemplateMsgByAppId;
            handlers.put(sendOfficialTemplateMsgByAppIdMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTemplateMsgByAppIdFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTemplateMsgByAppIdAsyncFunc = syncToAsync(this::sendOfficialTemplateMsgByAppId);
            handlers.put(sendOfficialTemplateMsgByAppIdProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTemplateMsgByAppIdAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendCustomMessageRequest, StreamObserver<com.ywt.gapi.base.wechat.SendCustomMessageResponse>> sendCustomMessageFunc = this::sendCustomMessage;
            handlers.put(sendCustomMessageMethod.getMethodName(), new UnaryStubMethodHandler<>(sendCustomMessageFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendCustomMessageRequest, StreamObserver<com.ywt.gapi.base.wechat.SendCustomMessageResponse>> sendCustomMessageAsyncFunc = syncToAsync(this::sendCustomMessage);
            handlers.put(sendCustomMessageProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendCustomMessageAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse>> getAppIdByInternalTerminalFunc = this::getAppIdByInternalTerminal;
            handlers.put(getAppIdByInternalTerminalMethod.getMethodName(), new UnaryStubMethodHandler<>(getAppIdByInternalTerminalFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse>> getAppIdByInternalTerminalAsyncFunc = syncToAsync(this::getAppIdByInternalTerminal);
            handlers.put(getAppIdByInternalTerminalProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getAppIdByInternalTerminalAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse>> getUserInfoByCodeForWxMpFunc = this::getUserInfoByCodeForWxMp;
            handlers.put(getUserInfoByCodeForWxMpMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByCodeForWxMpFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse>> getUserInfoByCodeForWxMpAsyncFunc = syncToAsync(this::getUserInfoByCodeForWxMp);
            handlers.put(getUserInfoByCodeForWxMpProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByCodeForWxMpAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse>> getWxMpDecryptedDataFunc = this::getWxMpDecryptedData;
            handlers.put(getWxMpDecryptedDataMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxMpDecryptedDataFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse>> getWxMpDecryptedDataAsyncFunc = syncToAsync(this::getWxMpDecryptedData);
            handlers.put(getWxMpDecryptedDataProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxMpDecryptedDataAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse>> getUserInfoByOpenIdFunc = this::getUserInfoByOpenId;
            handlers.put(getUserInfoByOpenIdMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByOpenIdFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest, StreamObserver<com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse>> getUserInfoByOpenIdAsyncFunc = syncToAsync(this::getUserInfoByOpenId);
            handlers.put(getUserInfoByOpenIdProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getUserInfoByOpenIdAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTemplateMsgByTerminalFunc = this::sendOfficialTemplateMsgByTerminal;
            handlers.put(sendOfficialTemplateMsgByTerminalMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTemplateMsgByTerminalFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse>> sendOfficialTemplateMsgByTerminalAsyncFunc = syncToAsync(this::sendOfficialTemplateMsgByTerminal);
            handlers.put(sendOfficialTemplateMsgByTerminalProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendOfficialTemplateMsgByTerminalAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse>> sendMPTemplateMsgByTerminalFunc = this::sendMPTemplateMsgByTerminal;
            handlers.put(sendMPTemplateMsgByTerminalMethod.getMethodName(), new UnaryStubMethodHandler<>(sendMPTemplateMsgByTerminalFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse>> sendMPTemplateMsgByTerminalAsyncFunc = syncToAsync(this::sendMPTemplateMsgByTerminal);
            handlers.put(sendMPTemplateMsgByTerminalProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendMPTemplateMsgByTerminalAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.DecryptWxAppDataRequest, StreamObserver<com.ywt.gapi.base.wechat.DecryptWxAppDataResponse>> decryptWxAppDataFunc = this::decryptWxAppData;
            handlers.put(decryptWxAppDataMethod.getMethodName(), new UnaryStubMethodHandler<>(decryptWxAppDataFunc));
            BiConsumer<com.ywt.gapi.base.wechat.DecryptWxAppDataRequest, StreamObserver<com.ywt.gapi.base.wechat.DecryptWxAppDataResponse>> decryptWxAppDataAsyncFunc = syncToAsync(this::decryptWxAppData);
            handlers.put(decryptWxAppDataProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(decryptWxAppDataAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse>> sendMPSubscribeMsgByTerminalFunc = this::sendMPSubscribeMsgByTerminal;
            handlers.put(sendMPSubscribeMsgByTerminalMethod.getMethodName(), new UnaryStubMethodHandler<>(sendMPSubscribeMsgByTerminalFunc));
            BiConsumer<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest, StreamObserver<com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse>> sendMPSubscribeMsgByTerminalAsyncFunc = syncToAsync(this::sendMPSubscribeMsgByTerminal);
            handlers.put(sendMPSubscribeMsgByTerminalProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(sendMPSubscribeMsgByTerminalAsyncFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse>> getWxWebAccessTokenFunc = this::getWxWebAccessToken;
            handlers.put(getWxWebAccessTokenMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxWebAccessTokenFunc));
            BiConsumer<com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest, StreamObserver<com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse>> getWxWebAccessTokenAsyncFunc = syncToAsync(this::getWxWebAccessToken);
            handlers.put(getWxWebAccessTokenProxyAsyncMethod.getMethodName(), new UnaryStubMethodHandler<>(getWxWebAccessTokenAsyncFunc));




            return new StubInvoker<>(this, url, WeChatService.class, handlers);
        }


        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByCodeResponse getUserInfoByCode(com.ywt.gapi.base.wechat.GetUserInfoByCodeRequest request){
            throw unimplementedMethodException(getUserInfoByCodeMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetAccessTokenResponse getAccessToken(com.ywt.gapi.base.wechat.GetAccessTokenRequest request){
            throw unimplementedMethodException(getAccessTokenMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTplMsg(com.ywt.gapi.base.wechat.SendOfficialTplMsgRequest request){
            throw unimplementedMethodException(sendOfficialTplMsgMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetWxImageConfigResponse getWxImageConfig(com.ywt.gapi.base.wechat.GetWxImageConfigRequest request){
            throw unimplementedMethodException(getWxImageConfigMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendSubscribeCustomMsgResponse sendSubscribeCustomMsg(com.ywt.gapi.base.wechat.SendSubscribeCustomMsgRequest request){
            throw unimplementedMethodException(sendSubscribeCustomMsgMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeResponse createQrCode(com.ywt.gapi.base.wechat.CreateQrCodeRequest request){
            throw unimplementedMethodException(createQrCodeMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeStrSceneResponse createQrCodeStrScene(com.ywt.gapi.base.wechat.CreateQrCodeStrSceneRequest request){
            throw unimplementedMethodException(createQrCodeStrSceneMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeLimitResponse createQrCodeLimit(com.ywt.gapi.base.wechat.CreateQrCodeLimitRequest request){
            throw unimplementedMethodException(createQrCodeLimitMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneResponse createQrCodeLimitStrScene(com.ywt.gapi.base.wechat.CreateQrCodeLimitStrSceneRequest request){
            throw unimplementedMethodException(createQrCodeLimitStrSceneMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetOpenIdByCodeResponse getOpenIdByCode(com.ywt.gapi.base.wechat.GetOpenIdByCodeRequest request){
            throw unimplementedMethodException(getOpenIdByCodeMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetAccessTokenResponse getAccessTokenByAppId(com.ywt.gapi.base.wechat.GetAccessTokenByAppIdRequest request){
            throw unimplementedMethodException(getAccessTokenByAppIdMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTemplateMsgByAppId(com.ywt.gapi.base.wechat.SendOfficialTplMsgByAppIdRequest request){
            throw unimplementedMethodException(sendOfficialTemplateMsgByAppIdMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendCustomMessageResponse sendCustomMessage(com.ywt.gapi.base.wechat.SendCustomMessageRequest request){
            throw unimplementedMethodException(sendCustomMessageMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalResponse getAppIdByInternalTerminal(com.ywt.gapi.base.wechat.GetAppIdByInternalTerminalRequest request){
            throw unimplementedMethodException(getAppIdByInternalTerminalMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpResponse getUserInfoByCodeForWxMp(com.ywt.gapi.base.wechat.GetUserInfoByCodeForWxMpRequest request){
            throw unimplementedMethodException(getUserInfoByCodeForWxMpMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetWxMpDecryptedDataResponse getWxMpDecryptedData(com.ywt.gapi.base.wechat.GetWxMpDecryptedDataRequest request){
            throw unimplementedMethodException(getWxMpDecryptedDataMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetUserInfoByOpenIdResponse getUserInfoByOpenId(com.ywt.gapi.base.wechat.GetUserInfoByOpenIdRequest request){
            throw unimplementedMethodException(getUserInfoByOpenIdMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendOfficialTplMsgResponse sendOfficialTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendOfficialTemplateMsgByTerminalRequest request){
            throw unimplementedMethodException(sendOfficialTemplateMsgByTerminalMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalResponse sendMPTemplateMsgByTerminal(com.ywt.gapi.base.wechat.SendMPTemplateMsgByTerminalRequest request){
            throw unimplementedMethodException(sendMPTemplateMsgByTerminalMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.DecryptWxAppDataResponse decryptWxAppData(com.ywt.gapi.base.wechat.DecryptWxAppDataRequest request){
            throw unimplementedMethodException(decryptWxAppDataMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalResponse sendMPSubscribeMsgByTerminal(com.ywt.gapi.base.wechat.SendMPSubscribeMsgByTerminalRequest request){
            throw unimplementedMethodException(sendMPSubscribeMsgByTerminalMethod);
        }

        @Override
        public com.ywt.gapi.base.wechat.GetWxWebAccessTokenResponse getWxWebAccessToken(com.ywt.gapi.base.wechat.GetWxWebAccessTokenRequest request){
            throw unimplementedMethodException(getWxWebAccessTokenMethod);
        }





        @Override
        public final ServiceDescriptor getServiceDescriptor() {
            return serviceDescriptor;
        }
        private RpcException unimplementedMethodException(StubMethodDescriptor methodDescriptor) {
            return TriRpcStatus.UNIMPLEMENTED.withDescription(String.format("Method %s is unimplemented",
                "/" + serviceDescriptor.getInterfaceName() + "/" + methodDescriptor.getMethodName())).asException();
        }
    }

}
