一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

微信服務(wù)號(hào)校驗(yàn)URL核心代碼

 實(shí)力決定地位 2021-04-06
/驗(yàn)證URL        // @param sMsgSignature: 簽名串,對(duì)應(yīng)URL參數(shù)的msg_signature        // @param sTimeStamp: 時(shí)間戳,對(duì)應(yīng)URL參數(shù)的timestamp        // @param sNonce: 隨機(jī)串,對(duì)應(yīng)URL參數(shù)的nonce        // @param sEchoStr: 隨機(jī)串,對(duì)應(yīng)URL參數(shù)的echostr        // @param sReplyEchoStr: 解密之后的echostr,當(dāng)return返回0時(shí)有效        // @return:成功0,失敗返回對(duì)應(yīng)的錯(cuò)誤碼
        public int VerifyURL(string sMsgSignature, string sTimeStamp, string sNonce, string sEchoStr, ref string sReplyEchoStr)
        {            int ret = 0;            if (m_sEncodingAESKey.Length != 43)
            {                return (int)WXBizMsgCryptErrorCode.WXBizMsgCrypt_IllegalAesKey;
            }
            ret = VerifySignature(m_sToken, sTimeStamp, sNonce, sEchoStr, sMsgSignature);            if (0 != ret)
            {                return ret;
            }
            sReplyEchoStr = "";            string cpid = "";            try
            {
                sReplyEchoStr = Cryptography.AES_decrypt(sEchoStr, m_sEncodingAESKey, ref cpid); //m_sCorpID);            }            catch (Exception)
            {
                sReplyEchoStr = "";                return (int)WXBizMsgCryptErrorCode.WXBizMsgCrypt_DecryptAES_Error;
            }            if (cpid != m_sCorpID)
            {
                sReplyEchoStr = "";                return (int)WXBizMsgCryptErrorCode.WXBizMsgCrypt_ValidateCorpid_Error;
            }            return 0;
        }

以上是一段微信逛網(wǎng)提供的多年校驗(yàn)URL代碼,單此代碼我在微信企業(yè)號(hào)中使用過(guò)。目前由于公司需要做微信服務(wù)號(hào)使用時(shí)死活就報(bào)“簽名錯(cuò)誤-40001”.最后根據(jù)博客了解自己編寫(xiě)一個(gè)校驗(yàn)簡(jiǎn)單的方法。

#region 自己額外添加        /// <summary>
        /// MD5 加密        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static string Sha1(string s)
        {            using (var sha1 = SHA1.Create())
            {                var result = sha1.ComputeHash(Encoding.UTF8.GetBytes(s));                var strResult = BitConverter.ToString(result);                return strResult.Replace("-", "").ToUpper();
            }
        }        /// <summary>
        /// 驗(yàn)證微信簽名        /// </summary>
        /// <param name="token">token</param>
        /// <param name="signature">簽名</param>
        /// <param name="timestamp">時(shí)間戳</param>
        /// <param name="nonce">隨機(jī)數(shù)</param>
        /// <returns></returns>
        public static bool WooCheckSignature(string token,             string signature, string timestamp, string nonce)
        {            string[] ArrTmp = { token, timestamp, nonce };            //字典排序            Array.Sort(ArrTmp);            //拼接
            string tmpStr = string.Join("", ArrTmp);            //sha1驗(yàn)證
            tmpStr = Sha1(tmpStr); //FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");                                   //tmpStr = Membership.CreateUser(tmpStr, "SHA1");
            tmpStr = tmpStr.ToLower();            if (tmpStr == signature)
            {                return true;
            }            else
            {                return false;
            }
        }        #endregion 自己額外添加

用以上方法就方法就可以了。.net core 控制器使用

  /// <summary>
        ///回調(diào)地址        /// </summary>
        /// <returns></returns>
        public IActionResult InitWxPort(string echoStr, string signature, string timestamp, string nonce)
        {            var httpcontext = _accessor.HttpContext;            if (httpcontext.Request.Method.ToLower().Equals("get"))
            {                string token = Constant.CorpToken;                //WeixinUtiliy weixin = new WeixinUtiliy();
                if (WeixinUtiliy.WooCheckSignature(token, signature, timestamp, nonce))
                {                    return Content(echoStr);
                }                return Content("no as");                //return Content(weixin.Auth2(echoStr, signature, timestamp, nonce));            }            else
            {                return Ok();

            }
            
        }

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产不卡在线免费观看视频| 欧洲自拍偷拍一区二区| 久久亚洲精品中文字幕| 在线免费国产一区二区三区| 九九九热视频免费观看| 日本不卡一本二本三区| 精品国产av一区二区三区不卡蜜| 91免费精品国自产拍偷拍| 日韩毛片视频免费观看| 日韩国产传媒在线精品| 国产精品一区二区丝袜| 亚洲成人久久精品国产| 亚洲日本韩国一区二区三区| 在线观看国产午夜福利| 亚洲中文字幕视频一区二区| 懂色一区二区三区四区| 91一区国产中文字幕| 日本不卡在线视频你懂的 | 日本免费熟女一区二区三区| 日韩免费国产91在线| 免费观看潮喷到高潮大叫| 一区二区免费视频中文乱码国产| 亚洲美女国产精品久久| 久久一区内射污污内射亚洲| 在线九月婷婷丁香伊人| 熟女中文字幕一区二区三区| 日本亚洲精品在线观看| 欧美大粗爽一区二区三区| 亚洲欧美日韩综合在线成成| 开心五月激情综合婷婷色| 国产亚洲二区精品美女久久| 天堂热东京热男人天堂| 色婷婷国产精品视频一区二区保健| 日本久久中文字幕免费| 亚洲精品国产福利在线| 欧美日韩亚洲精品在线观看| 字幕日本欧美一区二区| 五月婷婷六月丁香狠狠| 亚洲午夜av一区二区| 久久综合日韩精品免费观看| 亚洲精品熟女国产多毛|