public IWeComResultDto CalculateSignature(CalculateSignatureParam param)
        {
            if (string.IsNullOrEmpty(param.Url) || string.IsNullOrWhiteSpace(param.Url))
            {
                return(new WeComBaseResultDto(-99, "NullUrl"));
            }
            var resultDto = new SignatureResultDto
            {
                ErrCode   = 0,
                ErrMsg    = string.Empty,
                Signature = new SignatureDto()
                {
                    AgentId   = param.AgentId,
                    CorpId    = param.CorpId,
                    NonceStr  = Guid.NewGuid().ToString(),
                    Ticket    = param.Ticket,
                    Timestamp = _encryptUtil.GetNowTimestamp()
                }
            };
            var url     = param.Url.IndexOf('#') > 0 ? param.Url.Remove(param.Url.IndexOf('#')) : param.Url;
            var rawData = string.Format("jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}", resultDto.Signature.Ticket, resultDto.Signature.NonceStr, resultDto.Signature.Timestamp, url);

            resultDto.Signature.Signature = _encryptUtil.GetSHA1(rawData, Encoding.ASCII);
            return(resultDto);
        }