C#开发微信门户及动(16)-微信企业号的部署与运

By admin in 亚洲必赢app在哪下载 on 2018年9月27日

 在比如系列随笔的前方,主要就是介绍微信公众号的派别应用开发,最近将全体微信框架进行了扩大补充,增加了流行的铺面号的API封装和付出,后续要介绍如何采取C#展开微信企业号的开工作,本篇作为微信企业号的支付之起步篇,介绍微信企业号的布局与以。

1、微信企业号的登记和登陆

商家号是随后公众号、订阅号的另外一种植微信类型,它要是给商家之。企业号是微信为合作社客户提供的走使用入口。可以帮公司树立职工、上下游供应链与企业
IT 系统之中的接连。利用 企业号
,企业或第三正协作伙伴可辅助公司飞速、低本钱的落实强质量之位移轻应用,实现生产、管理、协作、运营的
移动化 。

私家觉得企业号最酷的优点是好不限数据之音讯发送,也就算是可以当店堂职工里通行交流。相对于群众号和订阅号,发送信息的审慎程度,微信企业号可谓给人前一样亮的感到。不过微信企业号是要中间建立好通讯录,关注者需要般配通讯录的微信号、邮箱、电话号码任一个透过才可关心,也不怕是可防其他外来人员的自由关注了,另外如以安全考虑,还得装二浅验证,也就算是一个查核过程。

柜号的征和群众号同样,需要提供有关的企业资质文件,并且证实每年还设收取资费,否则恐怕发人口和效益的片范围。觉得微信真是怀念方办法赚钱,目前已有的收费模式发生,订阅号、公众号、企业号、开放平台,好像还起说明收费的了,而且微信小店也还欲收尾2万的押金,一切都是钱呀。

好了,其他不多说,微信的报地点是:https://qy.weixin.qq.com,一个邮箱不能同时注册微信公众号和微信企业号。

对此企业开展企业号并开始运用需要四步

1) 企业到微信官网( http://qy.weixin.qq.com )申请开展;

2) 开通后,企业于局号管理后台导入成员,发布二维码;

3) 企业调用企业号 api 与商店由发生网联网开发;

4) 员工关注,收到微信消息,在微信中以及公司相

报好局号,就可由此微信扫一扫,扫描公司二维码进行登录了,扫描的时节,需要微信进行确认,才足以继承输入密码进行登录,操作界面如下所示(左边是手机截图,右边是网页截图)。

亚洲必赢app在哪下载 1 亚洲必赢app在哪下载 2

报到后我们就可以看到对应之微机端的管住界面了。

亚洲必赢app在哪下载 3

2、设置开发回调模式

假使出过微信公众号,那么我们就知道,如果急需在微信服务器和网站服务器之间建立连接关系,实现信息的转折以及拍卖,那么就是应当设置一个回调模式,需要配备好有关的参数。然后以大团结 网站服务器间建立一个拍卖微信服务器信息的进口。

亚洲必赢app在哪下载 4 

登配置后,我们需要修改相关的URL、Token、EncodingAESKey等参数,主要是URL,这个就算是同公众号的进口处理同的,需要我们发布到网站服务器上之处理入口。

Token和AESKey可以根据提示动态变化一个即可,AESKey好像得是23各的,所以是貌似是深受它们和谐别的,这个重大用来加密解密使用的。

URL、Token、EncodingAESKey三独参数说明。

1)URL是企业应用接收企业号推送请求的拜访协议和地点,支持http或https协议。

2)Token可由局自由填写,用于转移签名。

3)EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。

验证URL、Token以及加密底详尽处理要参见后续 “接收信息不时之加解密处理”
的一部分。

亚洲必赢app在哪下载 5

自我店之商店号部署后的界面如下所示。

亚洲必赢app在哪下载 6

 这个URL里面对的页面效果,需要对数据开展剖析并赶回给微信服务器,因此我们得以服务器上先布置好这个处理效果入口。

而外上面的几个函数,还有一个CorpID的参数需要利用,我们可以于后台主界面-设置中查相。

亚洲必赢app在哪下载 7

下一场我们为便于网站后台使用,我们以及大众号的布置一样,把其内置了Web.Config里面,如下所示。

亚洲必赢app在哪下载 8

3、实现回调页面的意义开发

前介绍了几单布局起,需要在回调页面中用的,本小节继续介绍如何落实公司号信息之回发,使之通过回调测试的操作。

由回调测试的数目是透过Get方式发送的,因此我们的拍卖逻辑代码如下所示,和大众号的切近处理,只是实现有未极端一致而已。

    /// <summary>
    /// 企业号回调信息接口。统一接收并处理信息的入口。
    /// </summary>
    public class corpapi : IHttpHandler
    {
        /// <summary>
        /// 处理企业号的信息
        /// </summary>
        /// <param name="context"></param>
        public void ProcessRequest(HttpContext context)
        {
            string postString = string.Empty;
            if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
            {
                using (Stream stream = HttpContext.Current.Request.InputStream)
                {
                    Byte[] postBytes = new Byte[stream.Length];
                    stream.Read(postBytes, 0, (Int32)stream.Length);
                    postString = Encoding.UTF8.GetString(postBytes);
                }

                if (!string.IsNullOrEmpty(postString))
                {
                    Execute(postString);
                }
            }
            else
            {
                Auth();
            }
        }

        /// <summary>
        /// 成为开发者的第一步,验证并相应服务器的数据
        /// </summary>
        private void Auth()
        {
            #region 获取关键参数
            string token = ConfigurationManager.AppSettings["CorpToken"];//从配置文件获取Token
            if (string.IsNullOrEmpty(token))
            {
                LogTextHelper.Error(string.Format("CorpToken 配置项没有配置!"));
            }
            string encodingAESKey = ConfigurationManager.AppSettings["EncodingAESKey"];//从配置文件获取EncodingAESKey
            if (string.IsNullOrEmpty(encodingAESKey))
            {
                LogTextHelper.Error(string.Format("EncodingAESKey 配置项没有配置!"));
            }
            string corpId = ConfigurationManager.AppSettings["CorpId"];//从配置文件获取corpId
            if (string.IsNullOrEmpty(corpId))
            {
                LogTextHelper.Error(string.Format("CorpId 配置项没有配置!"));
            } 
            #endregion

            string echoString = HttpContext.Current.Request.QueryString["echoStr"];
            string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企业号的 msg_signature
            string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
            string nonce = HttpContext.Current.Request.QueryString["nonce"];

            string decryptEchoString = "";
            if (new CorpBasicApi().CheckSignature(token, signature, timestamp, nonce, corpId, encodingAESKey, echoString, ref decryptEchoString))
            {
                if (!string.IsNullOrEmpty(decryptEchoString))
                {
                    HttpContext.Current.Response.Write(decryptEchoString);
                    HttpContext.Current.Response.End();
                }
            }
        }

切切实实的处理代码如下所示,里面的一个加解密处理的好像是微信企业号附录里面提供的,我利用了C#版本的SDK而已。

    /// <summary>
    /// 企业号基础操作API实现
    /// </summary>
    public class CorpBasicApi : ICorpBasicApi
    {
        /// <summary>
        /// 验证企业号签名
        /// </summary>
        /// <param name="token">企业号配置的Token</param>
        /// <param name="signature">签名内容</param>
        /// <param name="timestamp">时间戳</param>
        /// <param name="nonce">nonce参数</param>
        /// <param name="corpId">企业号ID标识</param>
        /// <param name="encodingAESKey">加密键</param>
        /// <param name="echostr">内容字符串</param>
        /// <param name="retEchostr">返回的字符串</param>
        /// <returns></returns>
        public bool CheckSignature(string token, string signature, string timestamp, string nonce, string corpId, string encodingAESKey, string echostr, ref string retEchostr)
        {
            WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId);
            int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr);
            if (result != 0)
            {
                LogTextHelper.Error("ERR: VerifyURL fail, ret: " + result);
                return false;
            }

            return true;

            //ret==0表示验证成功,retEchostr参数表示明文,用户需要将retEchostr作为get请求的返回参数,返回给企业号。
            // HttpUtils.SetResponse(retEchostr);
        }

 

 

比方对之《C#开发微信门户及下》系列感兴趣,可以关注本身之另文章,系列随笔如下所示:

C#支出微信门户及应用(25)-微信企业号的客户端管住效能

C#出微信门户及用(24)-微信小店货架信息保管

C#支付微信门户及动(23)-微信小店商品管理接口的包裹和测试

C#付出微信门户及使用(22)-微信小店的开发及使用

C#开微信门户及利用(21)-微信企业号的音信及波之接收处理同解密 

C#付出微信门户及动(20)-微信企业号的菜单管理

C#开微信门户及使用(19)-微信企业号的音讯发送(文本、图片、文件、语音、视频、图文信息等)

C#开发微信门户及用(18)-微信企业号的通讯录管理出之成员管理

C#支出微信门户及下(17)-微信企业号的通讯录管理出的部门管理

C#出微信门户及应用(16)-微信企业号的配置以及动用

C#支出微信门户及用(15)-微信菜单增加扫一扫、发图、发地理位置功能

 C#出微信门户及下(14)-在微信菜单中运用重定向得到用户数量

C#支出微信门户及利用(13)-使用地理位置扩展相关以

C#开发微信门户及用(12)-使用语音处理

C#支付微信门户及动(11)–微信菜单的有余表现方式介绍

C#付出微信门户及使用(10)–在治本体系面临一头微信用户分组信息

C#开微信门户及运用(9)-微信门户菜单管理暨交至微信服务器

C#付出微信门户及以(8)-微信门户应用管理网机能介绍

C#出微信门户及采取(7)-微信多客服功能与开发并

C#支出微信门户及应用(6)–微信门户菜单的管制操作

C#开发微信门户及运用(5)–用户分组信息保管

C#开微信门户及以(4)–关注用户列表及详细信息管理

C#支出微信门户及采取(3)–文本消息以及图文信息之应对

C#出微信门户及应用(2)–微信信之处理及回复

C#支付微信门户及运用(1)–开始用微信接口

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2018 亚洲必赢app官方下载 版权所有