codecamp
自定义被动消息回复

自定义回复

之前的步骤,演示了默认的BasicWxHandler的行为是怎样的,现在,我们要自定义一个WxHandler了

新建一个类,继承BasicWxHandler

@IocBean(create="init", name="wxHandler")
public class DefaultWxHandler extends BasicWxHandler {

@Inject
protected PropertiesProxy conf; // 注入配置信息加载类

public void init() {
    // 将读取 weixin.token/weixin.aes/weixin.appid, 他们通常会写在weixin.properties或从数据库读取.
    configure(conf, "weixin.");

    // 如果你不知道conf是啥, 完全搞不清楚状况,
    // 请将protected PropertiesProxy conf注释掉,configure也注释掉
    // 把下面这行取消注释.
    // token = "1234567890";
}

public WxOutMsg text(WxInMsg msg) {
    if ("1".equals(msg.getContent())) {
        return Wxs.respText("广告法说不能自称第一");
    }
    else if ("2".equals(msg.getContent())) {
        return Wxs.respText("就是这么2");
    }
    return super.text(msg);
}
}

然后改一下WeixinModule中的wxHandler声明, 使其变成注入DefaultWxHandler

@Inject
protected WxHandler wxHandler;

然后,就是启动你的项目, 在微信中输入1 或 2 , 看看服务器响应什么了.

如何扩展

BasicWxHandler 有大量的定义的方法,覆盖指定的方法即可.

如果需要完全接管,那么,覆盖handle方法就可以了


微信集成 快速入门
微信Api的集成
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

表达式引擎

maplist结构

图像处理小军刀

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }