Exemplo n.º 1
0
        public ServiceResult <WxEE_JssdkConfigOutput> config(WxEE_JssdkConfigInput input)
        {
            var result = _ee_jssdk.GetConfig(input);

            Response.StatusCode = result.code;
            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取jssdk配置
        /// </summary>
        /// <param name="mid"></param>
        /// <param name="url"></param>
        /// <returns></returns>
        public ServiceResult <WxEE_JssdkConfigOutput> GetConfig(WxEE_JssdkConfigInput input)
        {
            try
            {
                input.CheckNull(nameof(WxEE_JssdkConfigInput));
                input.guid.CheckEmpty(nameof(input.guid));
                input.url.CheckEmpty(nameof(input.url));

                var config = new WxEE_JssdkConfigOutput();
                //时间戳
                config.time_stamp = WxContext.Common.GenerateTimeStamp();
                //随机字符
                config.nonce_str = WxContext.Common.GenerateNonceStr();
                //获取微信配置
                var wechatConfig = _middleDB.WechatEeappConfig.Select(s => new { s.Id, s.Guid, s.CorpId }).FirstOrDefault(w => w.Guid == input.guid);
                config.corpid = wechatConfig.CorpId;
                //token
                var token = _configService.GetAccessToken(new WxEE_AuthorizeAccessTokenInput {
                    guid = wechatConfig.Guid
                });
                if (token.code != StatusCodes.Status200OK)
                {
                    return(ServiceResult <WxEE_JssdkConfigOutput> .Failed(token.code, token.msg));
                }
                //jsapi_ticket
                var ticket = GetJsapiTicket(new WxEE_JssdkJsapiTicketInput {
                    guid = wechatConfig.Guid, access_token = token.data.access_token
                });
                //signature
                config.signature = WxContext.Common.GenerateSignature(config.time_stamp, config.nonce_str, ticket.data.jsapi_ticket, input.url);
                return(ServiceResult <WxEE_JssdkConfigOutput> .Success(config));
            }
            catch (Exception ex)
            {
                return(ServiceResult <WxEE_JssdkConfigOutput> .Exception(ex.Message));
            }
        }