jeecms添加微信推送认证接口(只是给自己用,留个编辑,文章写的不详细!!!!勿浏览)
来源:互联网 发布:win10设置网络自动连接 编辑:程序博客网 时间:2024/05/24 06:32
//微信加密签名public String getSignature(String timestamp,String nonce) {// TODO take token from dbCmsConfig config=configMng.get();String token=config.getWeixinToken();String[] strarr = new String[]{token,timestamp,nonce};String signature = "";//对三个参数排序Arrays.sort(strarr);StringBuffer content = new StringBuffer();for (int i=0; i<strarr.length; i++)content.append(strarr[i]);//生成signature,最好此处将echostr存起来,以后每次校验消息来源都需要用到signature = Sha1Encoder.encodeBySHA1(content.toString()).toLowerCase(); // 确认请求来至微信 return signature;}/** * 响应用户发送的消息,只是用来测试,没有实际用处 */public void responseMsg(Map<String, String> paramMap) {String MsgType = WeiXinUtil.getMsgType(paramMap);//sendMessage(MsgTyep, null, MsgTyep, null, null, null);String token=weixinTokenCache.getToken();switch(MsgType) {case WeiXinUtil.Message.Text:sendText(token, "未识别指令。将返回帮助菜单:1:帮助指令 2:获取最新消息 3:推送最新通知(管理员指令)");break;case WeiXinUtil.Message.Image:sendText(token, "图片我喜欢,你是要我保存吗?");break;case WeiXinUtil.Message.Voice:sendText(token, "最近上火听不清你说什么!");break;default:sendText(token,"What are you 弄啥嘞?");}}
jeecms本身带微信推送功能,并且在发文章的时候已经将推送的代码写进去了。
contentAct.java (package com.jeecms.cms.action.admin.main;)
//微信消息发送
weiXinSvc.sendMessage(sendType, selectImg, weixinImg, bean, ext, txt);
缺少的是微信公众号中token的认证,所有添加相应代码。(部分代码,时间关系不能都贴出来。代码在上面,csdn,,,,,,blog这么难用,想起了我就不想写东西了。)
前台找到action类,spring mvc controle 添加"sing.jspx"
public void signature(HttpServletRequest request,HttpServletResponse response) {String result = "Error";/** 判断是否是微信接入激活验证,只有首次接入验证时才会收到echostr参数,此时需要把它直接返回 */String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");if (echostr != null && echostr.length() > 1) {if (wx.getSignature(timestamp,nonce).equals(signature))result = echostr;}ResponseUtils.renderText(response, result);}
然后调用上面service。。。。。。(好像不符合mvc模式,是不是要写在其他包中????)管它呢。本来对jeecms分析就是不到位。
另外将token值加到数据库中,(这是我想记录的东西,其他都是顺便提一下。)jc_config_atrr追加一条记录weixinToken , test
在系统后台模板中找到api_edit.html添加
<@p.text colspan="1" width="50" label="cmsConfig.weixinToken" name="weixinToken" value=configAttr.weixinToken! style="width:200px" maxlength="100" /><@p.tr/>
然后修改cmsconfigattr.java(CmsCofig.java(com.jeecms.cor.entity.base包中),参照weixinid设置get 和set
public static final String WEIXIN_TOKEN = "weixinToken";
public String getWeixinToken() {
return getAttr().get(WEIXIN_TOKEN);
}
public void setWeixinToken(String token) {
getAttr().put(WEIXIN_TOKEN, token);
}
在cmsconfig.java中,在CmsCofig.java(com.jeecms.cor.entity.base包中,添加
public String getWeixinToken(){
CmsConfigAttr configAttr=getConfigAttr();
return configAttr.getWeixinToken();
}
api_edit.html后台api接口模板页添加下面内容:
<@p.text colspan="1" width="50" label="cmsConfig.weixinToken" name="weixinToken" value=configAttr.weixinToken! style="width:200px" maxlength="100" /><@p.tr/>
其中:cmsConfig.weixinToken 在后台模板文件夹languages\jeecms\admin\message_en_US.properties和对应的messages_zh_CN.properties中添加cmsConfig.weixinToken=Token 。
configAttr.weixinToken是从数据库中取出来,好像对应的类是CmsCofig.java(com.jeecms.cor.entity.base包中)。
从这里可以看到标签使用中,一部分来自数据库,一部分来自配置文件,例如需要显示的文字来自语言国际化的配置文件,数据来自数据库。
只是不知道如何判断从哪个类中读数据。
表:jc_config_attr中存放weixinToken ,appID, appsecret
- jeecms添加微信推送认证接口(只是给自己用,留个编辑,文章写的不详细!!!!勿浏览)
- 新手不会写,只是记性不好,给自己看的
- 无聊写一个自己接入微信支付的文章
- 给自己的requestProxy写个教程
- 给自己的信
- 郁闷,不小心把自己的文章给删除了
- 给自己的BLOG添加一个详细的访问统计
- C#给自己写的方法添加注释提示
- 给自己写的
- 给自己的程序增加网页浏览功能(续)
- 我只是个写代码的(幽默一下)
- PC上浏览微信文章
- 转载一篇超牛的文章,给自己留个纪念
- 给自己找了个写博客的理由
- wordpress中不使用插件添加文章浏览数及评论数的方法。
- 让我们给自己的 Blog 添加个 天气预报 吧
- 实现跳转到“微信公众账号”并打开添加某个固定微信用户为好友的页面(接口被封了,已经不可用)
- 2012给自己的信
- 学Android---布局(三)FrameLayout
- Android:开源框架xutils介绍之 ViewUtils(注解实现UI绑定和事件绑定)
- oracle EM
- UITableView的简单使用!
- jquery隐式迭代
- jeecms添加微信推送认证接口(只是给自己用,留个编辑,文章写的不详细!!!!勿浏览)
- mpdp导入从原表空间更换到其他表空间
- Hive支持的数据类型
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- imp导入到指定表空间
- Oracle 11g R2 用exp无法导出空表解决方法
- 海思mmz: section 2 reloc 30 sym 'printk': relocation 28 out of range问题解决
- iOS相册访问 ALAssetsLibrary(获取到相册的图片)+ 图片格式
- HDU 5534 (ACM 2015 长春) Partial Tree [基础DP]