Beispiel #1
0
        /// <summary>
        ///  获取jssdk签名信息
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public async Task <WXJsSdkSignatureResp> GetJsSdkSignature(string url)
        {
            var ticketRes = await GetJsTicketFromCacheAsync(WXJsTicketType.jsapi);

            if (!ticketRes.IsSuccess())
            {
                return(new WXJsSdkSignatureResp().WithResp(ticketRes));// ticketRes.ConvertToResultInherit<WXJsSdkSignatureResp>();
            }

            var resp = new WXJsSdkSignatureResp
            {
                app_id    = ApiConfig.AppId,
                noncestr  = GenerateNonceStr(),
                timestamp = DateTime.Now.ToLocalSeconds()
            };


            var signStr = new StringBuilder();

            signStr.Append("jsapi_ticket=").Append(ticketRes.ticket);
            signStr.Append("&noncestr=").Append(resp.noncestr);
            signStr.Append("&timestamp=").Append(resp.timestamp);
            if (!string.IsNullOrEmpty(url))
            {
                signStr.Append("&url=").Append(url);
            }

            resp.signature = Sha1.Encrypt(signStr.ToString());

            return(resp);
        }
Beispiel #2
0
        /// <summary>
        ///  获取jssdk签名信息
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public async Task <WXJsSdkSignatureResp> GetJsSdkSignature(string url)
        {
            if (WXPlatConfigProvider.JsTicketHub == null)
            {
                throw new NullReferenceException("WXPlatConfigProvider 下 JsTicketHub 属性不能为空,因微信访问频率限制,需要通过其设置jsticket统一缓存管理获取。");
            }

            var appConfigRes = await GetMeta();

            if (!appConfigRes.IsSuccess())
            {
                return(new WXJsSdkSignatureResp().WithResp(appConfigRes));
            }

            var appConfig = appConfigRes.data;
            var ticketRes = await WXPlatConfigProvider.JsTicketHub.GetJsTicket(appConfig, WXJsTicketType.jsapi);

            if (!ticketRes.IsSuccess())
            {
                return(new WXJsSdkSignatureResp().WithResp(ticketRes));// ticketRes.ConvertToResultInherit<WXJsSdkSignatureResp>();
            }

            var resp = new WXJsSdkSignatureResp
            {
                app_id    = appConfig.AppId,
                noncestr  = GenerateNonceStr(),
                timestamp = DateTime.Now.ToLocalSeconds()
            };


            var signStr = new StringBuilder();

            signStr.Append("jsapi_ticket=").Append(ticketRes.data);
            signStr.Append("&noncestr=").Append(resp.noncestr);
            signStr.Append("&timestamp=").Append(resp.timestamp);
            if (!string.IsNullOrEmpty(url))
            {
                signStr.Append("&url=").Append(url);
            }

            resp.signature = Sha1.Encrypt(signStr.ToString());

            return(resp);
        }