weixin4j-mp-server
微信公众平台netty服务
功能列表
-
netty构建服务器 -
消息分发
如何使用
1.正确填写weixin.properties中的属性值
| 属性名 | 说明 |
|---|---|
| account | 微信公众号信息 json格式 |
| token_path | 使用FileTokenHolder时token保存的物理路径 |
| qr_path | 调用二维码接口时保存二维码图片的物理路径 |
| media_path | 调用媒体接口时保存媒体文件的物理路径 |
| bill_path | 调用下载对账单接口保存excel文件的物理路径 |
| ca_file | 调用某些接口(支付相关)强制需要auth的ca授权文件 |
示例(properties中换行用右斜杆\)
account={"id":"appId","secret":"appSecret",\\
"token":"开放者的token","openId":"公众号的openid 非必须",\\
"encodingAesKey":"公众号设置了加密方式且为「安全模式」时需要填入",\\
"mchId":"V3.x版本下的微信商户号",\\
"partnerId":"V2版本下的财付通的商户号","partnerKey":"V2版本下的财付通商户权限密钥Key",\\
"version":"针对微信支付的版本号(目前可能为2,3),如果不填则按照mchId非空与否来做判断",\\
"paySignKey":"微信支付中调用API的密钥"}
token_path=/tmp/weixin/token
qr_path=/tmp/weixin/qr
media_path=/tmp/weixin/media
bill_path=/tmp/weixin/bill
ca_file=/tmp/weixin/xxxxx.p12 | xxxxx.pfx
2.在对应的action中实现自己的具体业务 如 TextAction 则表示收到文本消息
@Override
public ResponseMessage execute(TextMessage inMessage) {
return new ResponseMessage(new Text("Hello World!"), inMessage);
}
3.mvn package,得到一个zip的压缩包,解压(也可使用deploy.xml部署到远程服务器)到启动目录
4.启动netty服务(com.foxinmy.weixin4j.mp.startup.WeixinMpServerBootstrap)
sh startup.sh start
1.服务的启动脚本startup.sh需要被注意到,有
JAVA_HOME和APP_HOME两个参数.
2.其中
JAVA_HOME参数值指的是java运行环境(jre|jdk)的安装根目录,如果与脚本中的值不一致,可以改更为实际的路径或者使用ln -s t/usr/local/java target软链接命令创建期望的链接.
3.其中
APP_HOME参数值指的是本服务的启动目录,此目录需要被正确事先创建好,同时deploy.xml远程部署命令也依赖于此.
4.Ant远程部署
deploy.xml的正确执行需要jsch包的支持,下载jar包将其引入执行Ant命令时的classpath中.
5.一般来说*Action事件处理类中应该有自己的实际业务类(
service)需要被注入,可以使用org.springframework.context.ApplicationContext#getBeansWithAnnotation(ActionAnnotation.class)函数获取Action集合后再来实现AbstractActionMapping.
更新LOG
-
2014-11-03
- 得到
weixin4j-mp-server工程
- 得到
-
2014-11-15
-
解决
server工程打包后不能运行问题(ClassUtil无法获取jar包里面的类) -
新增被动消息的
加密以及回复消息的解密
-
-
2014-11-23
WeixinServerBootstrap重命名为WeixinMpServerBootstrap
-
2015-03-25
-
新增客服创建、关闭、转接会话事件
-
新增deploy.xml远程部署ant脚本
-