86 lines
3.4 KiB
Markdown
86 lines
3.4 KiB
Markdown
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](./src/main/startup.sh)需要被注意到,有`JAVA_HOME`和`APP_HOME`两个参数.
|
|
|
|
> 2.其中`JAVA_HOME`参数值指的是java运行环境(jre|jdk)的安装根目录,如果与脚本中的值不一致,可以改更为实际的路径或者使用`ln -s target /usr/local/java`软链接命令创建期望的链接.
|
|
|
|
> 3.其中`APP_HOME`参数值指的是本服务的启动目录,此目录需要被正确事先创建好,同时[`deploy.xml`](./deploy.xml)远程部署命令也依赖于此.
|
|
|
|
> 4.Ant远程部署[`deploy.xml`](./deploy.xml)的正确执行需要[`jsch`](http://www.jcraft.com/jsch/)包的支持,下载jar包将其引入执行Ant命令时的`classpath`中.
|
|
|
|
> 5.一般来说*Action事件处理类中应该有自己的实际业务类(`service`)需要被注入,可以使用org.springframework.context.ApplicationContext#getBeansWithAnnotation(ActionAnnotation.class)函数获取Action集合后再来实现[`AbstractActionMapping`](https://github.com/foxinmy/weixin4j/blob/master/weixin4j-base/src/main/java/com/foxinmy/weixin4j/action/mapping/AbstractActionMapping.java).
|
|
|
|
更新LOG
|
|
-------
|
|
* 2014-11-03
|
|
|
|
+ 得到`weixin4j-mp-server`工程
|
|
|
|
* 2014-11-15
|
|
|
|
+ 解决`server工程`打包后不能运行问题(`ClassUtil`无法获取jar包里面的类)
|
|
|
|
+ 新增被动消息的`加密`以及回复消息的`解密`
|
|
|
|
* 2014-11-23
|
|
|
|
+ `WeixinServerBootstrap`重命名为`WeixinMpServerBootstrap`
|
|
|
|
* 2015-03-25
|
|
|
|
+ 新增客服创建、关闭、转接会话事件
|
|
|
|
+ 新增deploy.xml远程部署ant脚本 |