目录

自定义被动消息回复

优质
小牛编辑
128浏览
2023-12-01

之前的步骤,演示了默认的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方法就可以了