http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2531|回复: 1

[综合] Asp.net【企业微信开发】(三)回调URL校验

[复制链接]
发表于 2021-7-7 15:47:38 | 显示全部楼层 |阅读模式
企业微信创建过第三方网页应用后, 在服务商后台-应用管理-网页应用,点击创建的应用后, 会发现, 回调配置中, 数据回调url, 指令回调url部分显示感叹号, 并提示:服务商未相应,将无法获取用户时间回调
如下图:
1.jpg

解决该方法,需要在回调url地址的页面中,处理如下程序, 然后将程序上线, 重新进行校验,即可显示回调正常


回调页面程序:
[C#] 纯文本查看 复制代码
if (Request.HttpMethod.ToUpper() == "GET")
            {
                string signature = HttpContext.Current.Request.QueryString["msg_signature"];
                string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
                string nonce = HttpContext.Current.Request.QueryString["nonce"];
                string echostr = HttpContext.Current.Request.QueryString["echostr"];
                string decryptEchoString = "";
                WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(WXConfig.sToken, WXConfig.sEncodingAESKey, WXConfig.sCorpID);
                int ret = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref decryptEchoString);
                if (ret != 0)
                {
                    //有错误的话记录日志
                    //WriteLogFile("ERR: VerifyURL fail, ret: " + ret);
                }
                HttpContext.Current.Response.Write(decryptEchoString);
                HttpContext.Current.Response.End();
                return;
            }


[C#] 纯文本查看 复制代码
/验证URL
        // @param sMsgSignature: 签名串,对应URL参数的msg_signature
        // @param sTimeStamp: 时间戳,对应URL参数的timestamp
        // @param sNonce: 随机串,对应URL参数的nonce
        // @param sEchoStr: 随机串,对应URL参数的echostr
        // @param sReplyEchoStr: 解密之后的echostr,当return返回0时有效
        // @return:成功0,失败返回对应的错误码
        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_sReceiveId);
            }
            catch (Exception)
            {
                sReplyEchoStr = "";
                return (int)WXBizMsgCryptErrorCode.WXBizMsgCrypt_DecryptAES_Error;
            }
            if (cpid != m_sReceiveId)
            {
                sReplyEchoStr = "";
                return (int)WXBizMsgCryptErrorCode.WXBizMsgCrypt_ValidateCorpid_Error;
            }
            return 0;
        }


程序上线后, 点击编辑, 进入编辑页面后,点击申请校验
2.jpg

验证通过的话,会出现下图, 表示校验通过:
3.jpg

点击确定并返回, 页面显示如下:
5.jpg

再次点击应用进入后,会发现,页面上的 红色感叹号已经全部消失, 可以进行后续测试使用了




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-30 01:34

© 2014-2021

快速回复 返回顶部 返回列表