开发微信门户及利用

By admin in 亚洲必赢app在哪下载 on 2019年1月13日

 在本连串小说的前头,重要就是介绍微信公众号的宗派应用开发,目前把全体微信框架举办了增加补充,扩充了新星的商家号的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在哪下载,我集团的营业所号部署后的界面如下所示。

亚洲必赢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-2019 亚洲必赢app官方下载 版权所有