weixin4j/weixin4j-mp/weixin4j-mp-server

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":"财付通的商户号","partnerKey":"财付通商户权限密钥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_HOMEAPP_HOME两个参数.

2.其中JAVA_HOME参数值指的是java运行环境(jre|jdk)的安装根目录,如果与脚本中的值不一致,可以改更为实际的路径或者使用ln -s target /usr/local/java软链接命令创建期望的链接.

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脚本