实例解析大数据工具FineBI的企业应用
1. 报表企业应用示例
示例见Demo视频。
2. 创建报表企业应用
管理员登录企业号,根据提示新建应用,创建后进入应用,可以看到应用的基本信息,其中需要关注的信息有:
# 应用ID:号中可能有很多个应用,后台开发的时候需要根据应用ID来决定是在哪个应用中进行响应
# 可见范围:权限控制
# 应用模式:应用模式主要分成两种:
普通模式:这个模式下不能调用的接口,只能设置固定的菜单及回复的消息;如果需要的应用比较简单,菜单都是固定的,可以用这种模式,但是报表就无法绑定用户了,查看报表的时候就需要先登录(除非报表不做权限控制);
回调模式:开发者可以通过企业号提供的接口,获取用户信息,实现自动回复、自定义菜单等个性化功能。回调模式的界面如图所示:
3. 回调模式配置
我们在应用中需要调用开放的接口做开发,所以选择“回调模式”,这样服务器会在客户手机和开发者服务器间架起一个桥梁,通过消息的传递和响应,实现与用户的交互操作:
上面这个流程走通,需要服务器和开发者服务器先建立通信,这样才能构建一个完整的链路。
进入回调模式,开启模式后,可以看到,下面的功能都是不可用状态,需要设置好回调URL及密码后才能用的。圣诞文案朋友圈
我们点开修改,会看到有3个参数,都是我们需要关注的:
# URL:开发服务器接收收企业号服务器推送请求的地址,支持http或https协议,端口不限,这个URL就相当于开发服务器的后台引擎,服务器推送的请求都是到这个地址。另外注意,这个地址必须是外网可以访问的。
# Token:可由企业任意填写也可以随机获取,用于生成签名。
# EncodingAESKey:用于消息体的加密,是AES密钥的Base64编码,点击随机获取就可以获得。
点击保存的时候,企业号会向验证url发送一个get请求,例如:
409659589&nonce=263014780&echostr=P9nAzCzyDtyTWESHep1vC5X9xho%2FqYX
3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp%2B4RPcs8TgAE7OaBO%2BFZXvnaqQ%3D%3D
消息中会有四个参数,并且会以AES方式加密:
# msg_signature:消息体签名
# timestamp:时间戳
# nonce:随机数字串
# echostr:随机加密字符串
开发服务器需要解析出Get请求的参数,对参数进行解密,然后使用之前的Token、EncodingAESKey这两个值进行验证。所以在点击保存前,我们需要把开发服务器的响应先准备好。
针对加解密的处理,提供了各种语言的库,我们这边是用的java语言开发,所以下载java的加解密库,可以到发者中心下载的:
下载解压后,文件结构如下:
FR也将需要的类库准备好,见接口类文件夹,将其中classes文件夹下的类文件拷贝到WebReport\WEB-INF\classes即可。
注意事项:
1\qq\weixin\mp\aes目录下是用户需要用到的接入企业的接口,其中WXBizMsgCrypt.java文件提供的WXBizMsgCrypt类封装了用户接入企业的三个接口,其它的类文件用户用于实现加解密,用户无须关心。sample.java文件提供了接口的使用示例。
2.WXBizMsgCrypt封装了VerifyURL, DecryptMsg, EncryptMsg三个接口,分别用于开发者验证回调url、接收消息的解密以及开发者回复消息的加密过程。使用方法可以参考Sample.java文件。
3.请开发者使用jdk1.6或以上的版本。针对
胃痛怎么样才能缓解dec.binary.Base64,需要导入jar包commons-codec-1.9(或commons-codec-1.8等其他版本),异常
潺潺怎么读java.security.InvalidKeyException:illegal Key Size的解决方案:在下载JCE 无限制权限策略文件,下载后解压,可以看到local_policy.jar和US_export_policy.jar 以及。如果安装了JRE,将两个jar文件放到%JRE_HOME% \lib\security目录下覆盖原来的文件,如果安装了JDK,将两个jar文件放
社团活动策划书到%JDK_HOME%\jre\lib\security目录下覆盖原来文件。
以上工作做好后,我们就可以写验证方法了,例如我们demo都到WeiXinServer.jsp,代码如下:
1.<%@ page pageEncoding="utf-8" contentType="text/html;charset=utf-
8"%>
2.<%@ page import="java.io.IOException" %>
3.<%@ page import="java.io.PrintWriter" %>
4.<%@ page import="java.URLDecoder" %>
5.<%@ page import="javax.servlet.ServletException" %>
6.<%@ page import="javax.servlet.http.HttpServlet" %>
7.<%@ page import="javax.servlet.http.HttpServletRequest" %>
8.<%@ page import="javax.servlet.http.HttpServletResponse" %>
9.<%@ page import="com.qq.weixin.mp.aes.AesException" %>
10.<%@ page import="com.qq.weixin.mp.aes.WXBizMsgCrypt" %>
11.
12.<%
13. String sToken = " nAvYVGe";
14. String sCorpID = "xxxxxxxxxxxxxxx";
15. String sEncodingAESKey = " btvk2zcD8EdbtfD4HhaDD39Xc3rRH3Xy
5Nm1LLTJtqx";
16.
17./*
18. *企业开启回调模式时,企业号会向验证url发送一个get请求
19. *假设点击验证时,企业收到类似请求:
20. * xxurl?msg_signature=5c45ff5e21c57e6ad56bac8758b79b1d9ac89
fd3×tamp=1409659589&nonce=263014780&echostr=P9nAzCzyDtyTWESHep1vC5X 9xho%2FqYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp%2B4RPcs8TgAE7OaBO%2BFZXvna qQ%3D%3D
21. * 企业应解析出Get请求的参数,包括消息体签名(msg_signature),时
间戳(timestamp),随机数字串(nonce)以及公众平台推送过来的随机加密字符串
(echostr)
22. */
23.
24. request.setCharacterEncoding("utf-8");
25.
26. String sVerifyMsgSig = Parameter("msg_signature"
);
27. String sVerifyTimeStamp = Parameter("timestamp")
;
28. String sVerifyNonce = Parameter("nonce");
29. String sVerifyEchoStr = Parameter("echostr");
隐形的翅膀 歌词黄晓明秦岚30.
31. String sEchoStr; //需要返回的明文
32. PrintWriter outprint = Writer();
33. WXBizMsgCrypt wxcpt;
< {
35. wxcpt = new WXBizMsgCrypt(sToken, sEncodingAESKey, sCorpID)
;
36. sEchoStr = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp,
sVerifyNonce, sVerifyEchoStr);
37. System.out.println("verifyurl echostr: " + sEchoStr);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论