예제 #1
0
 /// <summary>
 /// 更新token信息
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="paInfo"></param>
 public void UpdateAccessToken(string accessToken, WctPaMstr paInfo)
 {
     paInfo.PA_ACCESS_TOKEN          = accessToken;
     paInfo.PA_ACCESS_TOKEN_EXP_TIME = DateTime.Now;
     paInfo.UPDATE_DATE = DateTime.Now;
     _wctPaMstrRepository.Update(paInfo);
 }
예제 #2
0
        /// <summary>
        /// 保存公众号信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public ReturnMsg SavePaInfo(WctPaMstrDto dto)
        {
            var rm     = new ReturnMsg();
            var entity = new WctPaMstr();
            var isOk   = CheckPaInfo(dto, rm);

            if (!isOk.IsSuccess)
            {
                return(rm);
            }
            if (string.IsNullOrEmpty(dto.Id))
            {
                dto.Id = Guid.NewGuid().ToString("N");
                _initHelper.InitAdd(dto, AbpSession.USR_ID, dto.PA_ID_NO, AbpSession.BG_NO);
                entity = dto.ToEntity();
                _wctPaMstrRepository.Insert(entity);
            }
            else
            {
                _initHelper.InitUpdate(dto, AbpSession.USR_ID);
                entity = dto.ToEntity();
                _wctPaMstrRepository.Update(entity);
            }
            rm.IsSuccess = true;

            return(rm);
        }
예제 #3
0
 /// <summary>
 /// 转换为数据传输对象
 /// </summary>
 /// <param name="entity">实体</param>
 public static WctPaMstrDto ToDto(this WctPaMstr entity)
 {
     if (entity == null)
     {
         return(new WctPaMstrDto());
     }
     return(new WctPaMstrDto {
         Id = entity.Id,
         PA_NAME = entity.PA_NAME,
         PA_ORIGINAL_ID = entity.PA_ORIGINAL_ID,
         PA_APPID = entity.PA_APPID,
         PA_APPSECRET = entity.PA_APPSECRET,
         PA_USER = entity.PA_USER,
         PA_PASSWORD = entity.PA_PASSWORD,
         PA_ID_NO = entity.PA_ID_NO,
         PA_TYPE_ID = entity.PA_TYPE_ID,
         PA_AUTH_URL = entity.PA_AUTH_URL,
         PA_CUS_SVC_ENABLED = entity.PA_CUS_SVC_ENABLED,
         PA_ENCODINGAESKEY = entity.PA_ENCODINGAESKEY,
         PA_ACCESS_TOKEN = entity.PA_ACCESS_TOKEN,
         PA_ACCESS_TOKEN_EXP_TIME = entity.PA_ACCESS_TOKEN_EXP_TIME,
         PA_JSAPITICKET = entity.PA_JSAPITICKET,
         PA_JSAPITICKET_EXP_TIME = entity.PA_JSAPITICKET_EXP_TIME,
         CREATE_ORG_NO = entity.CREATE_ORG_NO,
         CREATE_PSN = entity.CREATE_PSN,
         CREATE_DATE = entity.CREATE_DATE,
         UPDATE_PSN = entity.UPDATE_PSN,
         UPDATE_DATE = entity.UPDATE_DATE,
         UDF1 = entity.UDF1,
         UDF2 = entity.UDF2,
         UDF3 = entity.UDF3,
         UDF4 = entity.UDF4,
         UDF5 = entity.UDF5,
         UDF6 = entity.UDF6,
         UDF7 = entity.UDF7,
         UDF8 = entity.UDF8,
         UDF9 = entity.UDF9,
         UDF10 = entity.UDF10,
         PA_MANAGER_EMAIL = entity.PA_MANAGER_EMAIL,
         DEL_FLAG = entity.DEL_FLAG,
         BPMPAYCHANNELID = entity.BPMPAYCHANNELID,
         MCH_ID = entity.MCH_ID,
         SIGNKEY = entity.SIGNKEY,
         AUTHORIZER_ACCESS_TOKEN = entity.AUTHORIZER_ACCESS_TOKEN,
         AUTHORIZER_REFRESH_TOKEN = entity.AUTHORIZER_REFRESH_TOKEN,
         AUTHORIZER_TOKEN_TIME = entity.AUTHORIZER_TOKEN_TIME,
         OP_AUTH_STATUS = entity.OP_AUTH_STATUS,
         BG_NO = entity.BG_NO,
         APICLIENT_CERT = entity.APICLIENT_CERT,
         PA_FOLLOW_URL = entity.PA_FOLLOW_URL,
         PA_TEMPLATE_SERVICE = entity.PA_TEMPLATE_SERVICE,
         PA_TEMPLATE_TICKET_VERIFICA = entity.PA_TEMPLATE_TICKET_VERIFICA,
         PA_TEMPLATE_TICKET_ISSUE = entity.PA_TEMPLATE_TICKET_ISSUE,
         PA_TEMPLATE_APT = entity.PA_TEMPLATE_APT
     });
 }
예제 #4
0
        /// <summary>
        /// 获取微信请求accesstoken
        /// </summary>
        /// <param name="paInfo">公众号信息</param>
        /// <param name="bgNo"></param>
        /// <returns></returns>
        public ReturnMsg GetAccessToken(WctPaMstr paInfo, string bgNo)
        {
            var rm        = new ReturnMsg();
            var basConfig = GetBasConfig(bgNo);

            if (basConfig == null)
            {
                rm.IsSuccess = false;
                rm.msg       = "请先维护微信基础信息配置";

                return(rm);
            }

            //是否托管第三方
            if (basConfig.OPEN_IS_ENABLED == 1)
            {
                var token = GetOpenToken();
                if (string.IsNullOrEmpty(token))
                {
                    rm.IsSuccess = false;
                    rm.msg       = "获取token失败";
                    return(rm);
                }
                rm.IsSuccess = true;
                rm.result    = token;

                return(rm);
            }
            else
            {
                if (paInfo.PA_ACCESS_TOKEN_EXP_TIME != null)
                {
                    var expTime = (DateTime.Now - paInfo.PA_ACCESS_TOKEN_EXP_TIME).Value.TotalMinutes;
                    if (expTime <= 90)
                    {
                        rm.IsSuccess = true;
                        rm.result    = paInfo.PA_ACCESS_TOKEN;
                        return(rm);
                    }
                }

                string grant_type = "client_credential";
                string appid      = paInfo.PA_APPID;
                string secret     = paInfo.PA_APPSECRET;
                string tokenUrl   = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type={0}&appid={1}&secret={2}", grant_type, appid, secret);
                var    wc         = new WebClient();
                var    strReturn  = wc.DownloadString(tokenUrl);
                var    model      = JsonConvert.DeserializeObject <AccessTokenInfo>(strReturn);
                if (string.IsNullOrEmpty(model.access_token))
                {
                    rm.IsSuccess = false;
                    rm.msg       = "获取token失败";
                    return(rm);
                }
                UpdateAccessToken(model.access_token, paInfo);
                rm.IsSuccess = true;
                rm.result    = model.access_token;

                return(rm);
            }
        }