平台2.0微信企业号开发
企业号是微信为企业客户提供的移动应用入口。它帮助企业建立员工、上下游供应链与企业IT系统间的连接。平台微信企业号开发是指在平台的基础上,将应用的业务场景集成到企业微信号上,员工通过关注企业微信号,实现对业务系统功能的使用。有关企业微信号开发的相关信息及文档请参考官网:http://qydev.weixin.qq.com/wiki/index.php。下面针对平台微信企业号开发的配置做相关说明。
1 开启应用回调模式
回调模式开启后,企业不仅可以主动调用企业号接口、接收成员的消息或事件,还可以创建自定义菜单等功能。企业号的每个应用都有自己的回调模式开关,在管理端开启并设置好相关参数后,此应用的回调模式才生效。
当你开启应用的回调模式时,企业号会要求你填写应用的URL、Token、EncodingAESKey三个参数。配置界面以及各参数说明下:
URL:是企业应用接收企业号推送请求的访问协议和地址,支持http或https协议,这里的域名和工程名根据具体应用而定,对应的请求为coreJoin.do,如http://localhost:8080/test/coreJoin.do,即:域名+工程名+/coreJoin.do。
Token:Token可由企业任意填写,用于生成签名。需要注意的是这里的Token一旦配置完成,与工程对应的config.properties文件中wx.token的值需与此保持一致。
EncodingAESKey:EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。与wx.aesKey 保持一致。
CORPID:企业微信号,与wx.corpId保持一致。
AGENT_ID:应用的ID,对应wx.agentId
CORP_SECRET:企业微信号权限组秘钥,对应wx.corpSecret,上述各变量在企业微信管理界面中的位置如下:
上述各变量对应于工程config.properties文件中的变量名如下:
回调模式开启成功后,需配置应用的可信域名才能正常接口微信服务器发送的消息,可信域名的设置位置如下,需要注意的是:可信域名需为二级和二级以上域名,并且要和回调模式中的域名保持上下级关系。
注意点:如果上述配置信息都准确无误,在开启回调模式时,依然出现echostr解密失败,以及异常java.security.InvalidKeyException:illegal Key Size时,需要下载JCE无限制权限策略文件。
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt。如果安装了JRE,将两个 jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
下载地址为:
JDK6:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
JDK7:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
JDK8:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
2 自定义菜单配置
对应用菜单进行操作时,应用必须处于回调模式,并且自定义菜单最多为两级,一级菜单最多为3个,二级菜单最多为5个。
自定义菜单接口可实现多种类型按钮,当前平台微信企业开发只支持view类型,即成员点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页。应用在配置相应的自定义菜单功能时,如果该功能需要使用者预先登录,请在配置该功能的url后加上指定的参数,以便实现访问时跳过登录环节,url的格式为:应用的地址+&WX_TYPE=WX或者应用的地址+?WX_TYPE=WX。此外,若功能要实现模拟登陆,前段登录环节,微信企业号在管理企业成员时,需将通讯录中员工的账号与应用系统中的登录账号保持一致。
通讯录管理的界面如下:
3 平台微信企业号开发JS接口
使用微信js接口前,请确保上述各参数的配置是正确的,有关微信JS接口开发的详细信息请参考官方文档:微信JS-SDK说明文档。
使用平台相关js接口前,必须引入 【平台微信js接口】 模块,该模块位置如下:
在需要使用js接口的模块中,引入该公用模块,如下所示:
3.1 图片上传接口
引入上述模块后,图片上传接口函数为wxChooseImage,有关该函数的参数说明如下:
图片上传成功后,可以到对应的附件服务器上查看该文件,同时上传记录能在 xip_pub_atts 表中查找。
3.2 图片预览接口
函数名为wxImagePreview,相关参数说明如下:
businessId为业务表的主键。
3.3 消息发送接口(JAVA接口)
发送消息有多重形式,文本、图片、视频、声音等,除了文本信息发送外,其他媒体信息均依赖微信的上传临时素材或者永久素材接口。此外,收件人必须处于应用的可见范围内,并且管理组对应用有使用权限、对收件人有查看权限,否则消息发送不成功。消息基类的说明如下:com.xzsoft.xip.weixin.pojo.WxBaseMessage
文本消息类:com.xzsoft.xip.weixin.pojo.WxTextMessage extends WxBaseMessage
类属性描述:详细信息见官方文档
发送消息:构造WxTextMessage后,调用其sendMessage方法。
返回值:JSONObject对象,消息发送成功时,对象中包含属性如下:
{“errcode“:0,”errmsg“:”ok“}
调用出现异常时:
{
“errcode“:0, //执行结果编码
“errmsg“:”ok“, //执行结果消息
“invaliduser“:”xiaoming“,//未成功的人
“invalidparty“:”yfb“,//未成功的部门
“invalidtag“:”nqr“,//未成功的标签
}
注意点:如需发送给所有应用授权者,请设置touser的值为@all,如果需要发送多个人,请务必保证touser的格式为:xx|aa|cc的形式,有关参数说明请参考官方文档。