1、https://github.com/liyiorg/weixin-popular
weixin-popular
微信公众平台Java SDK
介绍
weixin-popular 包括微信公众平台基础API与支付API,提供便捷的API调用接口.
API 列表
- TokenAPI access_token 获取
- MediaAPI 多媒体上传下载(临时素材)
- MaterialAPI 永久素材
- MenuAPI 菜单
- MessageAPI 信息发送(客服消息、群发消息、模板消息)
- PayAPI 支付订单相关接口
- PayMchAPI 支付订单相关接口(商户平台版)
- QrcodeAPI 二维码
- SnsAPI 网签授权
- UserAPI 用户管理
- ShorturlAPI 长链接转短链接
- TicketAPI JSAPI ticket
- ComponentAPI 第三方开发平台
工具类
- PayUtil 支付工具类,生成JS支付,原生支付
- SignatureUtil 签权生成、验证
- XMLConverUtil XML 对象转换(JAXB)
- JsUtil JsAPI config,chooseWXPay JSON生成
example
其它
参考资料
2、https://github.com/caijianqing/weixinmp4java
微信公众平台API接口JAVA版
- 别名:weixinmp4java、wechat4java
- 这个包是微信公众平台纯API接口实现,除了一个gson的jar包以外,没有任何业务代码。
- 支持公众号(包括订阅号和服务号)的所有主动接口和被动接口。
- 支持小店接口v1.4
最近更新
2014.07.07
- 将代码切换为maven管理
- 原代码保留在no_maven目录中
2014.07.06 v91
- 小店API 1.4完成【警告:小店代码仅在本地进行模拟测试,没有经过微信服务器测试,欢迎有条件的同学反馈BUG】
- cjc.weixinmp包增加了7个以Merchant开头的类,分别对应API手册的7个功能接口,每个方法对应一个功能
- 增加cjc.weixinmp.merchant.bean包,存放与小店有关实体
- 增加cjc.weixinmp.merchant.builder包,因为小店的数据实体比较复杂(很多字段很多结构),所有特设数据构造器,非常好用!
- AbstractUserOperate增加onMerchantOrderPayEvent接口,为小店的订单支付推送事件
- 详细测试例子查看cjc.weixinmp.test.WeixinmpTestXiaodianServlet,部署test项目后打开首页可以看到连接。
- 内建模拟测试服务器,是本屌在封装小店接口时,因为没有小店测试权限特别开发的本地模拟测试模式。
- 开关在cjc.weixinmp.test.Engine的contextInitialized方法,默认关,见注释。
项目介绍
/weixinmp 实现代码主项目,可以输出为jar包使用。注意依赖gson.jar。
/weixinmp.test 示例&测试项目,看这里快速上手。需要依赖/weixinmp项目,
注意不是把代码复制过来用,而是在Eclipse或者MyEclipse是两个project的形式。
软件包介绍
cjc.weixinmp
包含事件分发、主动调用、通讯,解析json,解析xml,日志储存,读取配置文件,读取帮助文件信息等功能。
cjc.weixinmp.bean
接口通讯中涉及到的数据格式(xml或者json),已被封装为实体。
cjc.weixinmp.merchant.bean
存放与小店有关实体
cjc.weixinmp.merchant.builder
因为小店的数据实体比较复杂(很多字段很多结构),所有特设数据构造器,非常好用!
配置文件
/weixinmp.default.properties
框架基本设置,请复制一份并重命名为weixinmp.properties存放在你的src根目录下。
- 公众号的基本信息(token、appid、appsecret等)
- 公众平台API接口配置(各种URL)
- 代理设置(支持通过代理上网的环境)
/weixinmp_helps.xml
帮助信息文件,请复制一份weixinmp_helps.xml存放在你的src目录下。
- 帮助信息配置文件,由controller.getHelp(key)获得内容。
接口介绍
cjc.weixinmp.AbstractUserOperate
由微信服务器对你的服务器进行调用的接口称之为被动接口。 例如:发送文本消息、语音消息、订阅事件、退订事件、点击菜单事件等。 该接口已包含了所有开放的接口,选择需要的方法进行重写,并编写自己的业务代码即可。
// 用户主动发送文本消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onTextMessage(TextRequest text)
// 用户主动发图片消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onImageMessage(ImageRequest image)
// 用户主动发语音消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onVoiceMessage(VoiceRequest voice)
// 用户主动发视频消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onVideoMessage(VideoRequest video)
// 用户主动发位置消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onLocationMessage(LocationRequest location)
// 用户主动发链接消息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onLinkMessage(LinkRequest link)
// 用户订阅事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onSubscribeEvent(SubscribeEventRequest event)
// 用户退订事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onUnsubscribeEvent(SubscribeEventRequest event)
// 用户扫描参数二维码事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onScanEvent(ScanEventRequest event)
// 自动上报位置信息事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onLocationEvent(LocationEventRequest event)
// 用户点击自定义菜单事件
AbstractResponse cjc.weixinmp.AbstractUserOperate.onClickEvent(ClickEventRequest click)
// 小店支付通知
AbstractResponse cjc.weixinmp.AbstractUserOperate.onMerchantOrderPayEvent(OrderPayEventRequest orderPayEvent)
以“用户订阅事件”为例:
AbstractResponse cjc.weixinmp.AbstractUserOperate.onSubscribeEvent(SubscribeEventRequest event){
// 从帮助信息文件(weixinmp_helps.xml)中加载。也可以自己new TextResponse对象。
String help = controller.findHelp("欢迎关注");
// 这个是内置的一个快速构建“文本回复”的方法,这里意思是向用户回复“欢迎关注”的文字。
return buildTextResponse(help);
}
cjc.weixinmp.AbstractWeixinmpController
这个是API的总控制器,包含主动接口和被动接口。 这个控制器应该在Application上下文的生命周期内只创建一个实例,并接管某一个Servlet的doPost和doGet请求。
AbstractUserOperate cjc.weixinmp.test.WeixinmpController.getUserOperate(String FromUserName)
这个抽象方法为每次用户主动发送消息时调用,一般返回与用户绑定的AbstractUserOperate对象,这样保证用户会话不被串线。
void cjc.weixinmp.test.WeixinmpController.logInfo(String msg)
这是框架默认的记录日志方法,你可以重写它以及其他几个日志方法,用你自己的记录方式,例如log4j。
主动接口
由你的服务器对微信服务器进行主动调用的接口称之为主动服务。 例如:自定义菜单、客户消息用户管理等。
以下为可用的接口(注意:这些主动接口大部分为高级接口,需要服务号才能使用):
// 自定义菜单接口
CustomerMenuService cjc.weixinmp.AbstractWeixinmpController.getCustomMenuService()
// 上传下载接口
MediaLibraryService cjc.weixinmp.AbstractWeixinmpController.getMediaLibraryService()
// 客户消息接口
MessageService cjc.weixinmp.AbstractWeixinmpController.getMessageService()
// 参数二维码接口
QRCodeService cjc.weixinmp.AbstractWeixinmpController.getQrCodeService()
// 用户管理接口
UserManagerService cjc.weixinmp.AbstractWeixinmpController.getUserManagerService()
// 商品管理接口
MerchantProductService cjc.weixinmp.AbstractWeixinmpController.getMerchantProductService();
// 库存管理接口
MerchantStockService cjc.weixinmp.AbstractWeixinmpController.getMerchantStockService();
// 邮费模板管理接口
MerchantExpressService cjc.weixinmp.AbstractWeixinmpController.getMerchantExpressService();
// 商品分组管理接口
MerchantGroupService cjc.weixinmp.AbstractWeixinmpController.getMerchantGroupService();
// 货架管理接口
MerchantShelfService cjc.weixinmp.AbstractWeixinmpController.getMerchantShelfService();
// 订单管理接口
MerchantOrderService cjc.weixinmp.AbstractWeixinmpController.getMerchantOrderService();
以创建自定义菜单为例:
CustomButton button = new CustomButton();
button.addButton(CustomMenu.TYPE.click, "空按钮", "anniu1", null);
button.addButton(CustomMenu.TYPE.view, "百度", null, "http://www.baidu.com");
button.addButton(CustomMenu.TYPE.click, "菜单", "anniu1", null) //
.addSubButton(CustomMenu.TYPE.click, "按钮一", "anniu1", null) //
.addSubButton(CustomMenu.TYPE.click, "按钮二", "anniu2", null) //
.addSubButton(CustomMenu.TYPE.view, "视频", null, "http://v.qq.com");
AbstractWeixinmpController.getCustomMenuService().updateMenu(button); 3、https://github.com/foxinmy/weixin4j
weixin4j
微信开发工具包
功能列表
-
weixin4j-mp
公众平台API封装微信支付(刷卡/扫码/公众号) -
weixin4j-qy
企业号API封装 -
weixin4j-server
netty服务器&消息分发
项目说明
-
weixin4j包含「微信公众平台」和「微信企业号」的API封装. -
API的成功调用依赖于正确的appid等数据,填写格式说明见API工程下的README.md文件.
-
netty服务正在重构中
如何获取
1.maven依赖(1.4,2015-04-29 released)
微信公众平台API
<dependency>
<groupId>com.foxinmy</groupId>
<artifactId>weixin4j-mp</artifactId>
<version>1.4</version>
</dependency>
微信企业号API
<dependency>
<groupId>com.foxinmy</groupId>
<artifactId>weixin4j-qy</artifactId>
<version>1.4</version>
</dependency>
微信被动消息服务器
正在重构中..
以上依赖如果出现Missing artifact错误 请尝试在eclipse里这么做
-
进入 Window > Show View > Other > Maven Repositories 展开 Global Repositories 在group或者central上右键执行
update index操作 -
或者进入 Windows > Preferences > Maven 选中
Download repository index updates on startup即可
2.直接下载jar包
https://github.com/foxinmy/weixin4j/releases
3.从源码打包
git clone&mvn package -Prelease
更新LOG
接下来
- 被动消息服务重构
-
公众号第三方服务应用
-
企业号第三方应用 & 企业号登陆授权
-
硬件设备 & 摇一摇周边
-
微信小店
-
微信卡券
微信公众号、企业号Java SDK。
详细文档请看 wiki。
Quick Start
如果要开发公众号(订阅号、服务号)应用,在你的maven项目中添加:
<dependency>
<groupId>me.chanjar</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>1.1.4</version>
</dependency>
如果要开发企业号应用,在你的maven项目中添加:
<dependency>
<groupId>me.chanjar</groupId>
<artifactId>weixin-java-cp</artifactId>
<version>1.1.4</version>
</dependency>
SNAPSHOT版
本项目的BUG修复和新特性一般会先发布在-SNAPSHOT版里供大家预览,如果要使用-SNAPSHOT版,则需要在你的pom.xml中添加这段:
<repositories>
<repository>
<snapshots />
<id>sonatype snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
2万+

被折叠的 条评论
为什么被折叠?



