本系列随笔前面主要介绍微信门户应用开发公众号。最近对整个微信框架进行了扩展和补充,增加了***企业号的API包。以及开发,后续主要介绍如何使用C#开发微信企业号。本文作为微信企业号开发的开端,介绍微信企业号的配置和使用。一、微信企业号注册登录企业号是继公众号和订阅号之后的又一类微信,主要面向企业用户。企业号是微信为企业客户提供的移动应用入口。它可以帮助企业建立员工、上下游供应链和企业IT系统之间的连接。使用企业账号,企业或第三方合作伙伴可以帮助企业快速、低成本地实现高质量的移动轻应用,实现生产、管理、协同、运营的“移动化”。个人认为企业号的亮点在于可以无限发送消息,也就是企业员工之间可以顺畅交流。与公众号和订阅号相比,微信企业号在发送消息时的谨慎程度,可以说是给人眼前一亮的感觉。但是微信企业号需要建立内部通讯录。关注者需要匹配通讯录中的任何一个微信号、邮箱、电话号码才能关注,这意味着可以防止其他外人随意关注。另外,如果是出于安全考虑,还可以设置二次验证,这是一个审核过程。企业号的认证与公众号一样,需要提供相关的企业资质文件,认证会收取年费,否则在人员和职能上可能会有一些限制。感觉微信真的是在想赚钱的方法。现有的收费模式有订阅号、公众号、企业号、开放平台等。好像有认证费,微店还需要收2万元押金。一切都是钱。好了,不多说了,微信的注册地址是:https://qy.weixin.qq.com,一个邮箱不能同时注册微信公众号和微信企业号。企业开通企业账号并开始使用需要四个步骤:1)企业在微信官网(http://qy.weixin.qq.com)申请激活;2)激活后,企业在企业号管理后台导入会员,并发布一个3)企业调用企业号api与企业自身系统对接开发;4)员工关注,接收微信信息,在微信中与企业互动注册企业号,即可通过微信扫一扫,扫描企业二维码,扫描时需要微信确认,方可继续进入登录密码。操作界面如下(左为手机截图,右为网页截图)。登录后,我们可以看到对应电脑的管理界面。2.设置开发回调模式如果你开发过微信公众号,那么我们就知道,如果需要在微信服务器和网站服务器之间建立连接关系,实现消息的转发和处理,那么就应该设置回调模式,需要配置好相关参数。然后在自己的网站服务器中创建一个处理微信服务器消息的入口。进入配置后,我们需要修改相关的URL、Token、EncodingAESKey等参数,主要是URL,和公众号的入口处理一样,需要在网站服务器上发布处理入口。可以根据提示动态生成Token和AESKey。AESKey好像必须是23位的,所以这个一般是自己生成的,主要用于加解密。URL、Token、EncodingAESKey三个参数的说明。1)URL是企业应用接收企业账号推送请求的访问协议和地址,支持http或https协议。2)token可由企业任意填写,用于生成签名。3)EncodingAESKey用于对消息体进行加密,是AES密钥的Base64编码。验证URL、Token、加密的详细处理请参考后续“接收消息时的加解密处理”部分。配置我公司的企业号后的界面如下。这个URL指向的页面函数需要解析数据返回给微信服务器,所以我们需要在服务器上预先部署这个处理函数入口。除了上述功能外,还有一个CorpID参数需要用到,我们可以在后台主界面-设置中查看。然后,为了方便网站后台使用,我们把它放在Web.Config中,和公众号的配置一样,如下图。3、实现回调页面的功能开发。前面介绍了几个配置项,需要在回调页面中使用。本节继续介绍如何实现企业账号信息的回传,以通过回调测试。由于回调测试的数据是通过Get发送的,所以我们的处理逻辑代码如下,与公众号类似,只是实现部分不同。//////企业账号回调信息接口。统一接收和处理信息的入口。///publicclasscorpapi:IHttpHandler{//////处理企业号信息//////publicvoidProcessRequest(HttpContextcontext){stringpostString=string.Empty;如果(HttpContext.Current.Request.HttpMethod.ToUpper()==“POST”){使用(Streamstream=HttpContext.Current.Request.InputStream){Byte[]postBytes=newByte[stream.Length];stream.Read(postBytes,0,(Int32)stream.Length);postString=Encoding.UTF8.GetString(postBytes);}if(!string.IsNullOrEmpty(postString)){执行(postString);}}else{认证();}}//////成为开发者的第一步,验证并响应服务器数据///privatevoidAuth(){#region获取关键参数stringtoken=ConfigurationManager.AppSettings["CorpToken"];//从配置文件获取Tokenif(string.IsNullOrEmpty(token)){LogTextHelper.Error(string.Format("CorpToken配置项未配置!"));}stringencodingAESKey=ConfigurationManager.AppSettings["EncodingAESKey"];//从配置文件中获取EncodingAESKeyif(string.IsNullOrEmpty(encodingAESKey)){LogTextHelper.Error(string.Format("EncodingAESKey配置项未配置!"));}stringcorpId=ConfigurationManager.AppSettings["CorpId"];//从配置文件中获取corpIdif(string.IsNullOrEmpty(corpId)){LogTextHelper.Error(string.Format("CorpId配置项未配置!"));}#endregionstringechoString=HttpContext.Current.Request.QueryString["echoStr"];stringsignature=HttpContext.Current.Request.QueryString["msg_signature"];//企业号msg_signaturestringtimestamp=HttpContext.Current.Request.QueryString["timestamp"];stringnonce=HttpContext.Current.Request.QueryString["nonce"];stringdecryptEchoString="";if(newCorpBasicApi().CheckSignature(token,signature,timestamp,nonce,corpId,encodingAESKey,echoString,refdecryptEchoString)){if(!string.IsNullOrEmpty(decryptEchoString)){HttpContext.Current.Response.Write(decryptEchoString);HttpContext.Current.Response.End();}}}具体处理代码如下。微信企业号附件中提供了其中一个加解密处理类。我只使用C#版本的SDK//////企业账号基本操作API实现///publicclassCorpBasicApi:ICorpBasicApi{//////验证企业账号签名//////企业账号配置的token///签名内容///时间戳///nonce参数///企业ID///加密密钥///内容字符串///返回的字符串///publicboolCheckSignature(stringtoken,stringsignature,stringtimestamp,stringnonce,stringcorpId,stringencodingAESKey,stringechostr,refstringretEchostr){WXBizMsgCryptwxcpt=newWXBizMsgCrypt(token,encodingAESKey,corpId);intresult=wxcpt.VerifyURL(签名、时间戳、nonce、echostr、refretE主唱);if(result!=0){LogTextHelper.Error("ERR:VerifyURLfail,ret:"+result);返回假;返回真;//ret==0表示验证成功,retEchostr参数表示明文,用户需要通过retEchostr作为get请求的返回参数,返回给企业号//HttpUtils.SetResponse(retEchostr);}原文来自:http://www.cnblogs.com/wuhuacong/p/3991735.html