{"id":13684864,"url":"https://github.com/sd4324530/fastweixin","last_synced_at":"2025-05-01T00:33:36.001Z","repository":{"id":20545299,"uuid":"23824849","full_name":"sd4324530/fastweixin","owner":"sd4324530","description":"极其方便的实现微信公众平台服务端开发，2行代码完成服务器绑定，3行代码实现用户消息监听","archived":false,"fork":false,"pushed_at":"2024-07-24T03:12:05.000Z","size":710,"stargazers_count":774,"open_issues_count":22,"forks_count":336,"subscribers_count":107,"default_branch":"master","last_synced_at":"2024-10-31T03:36:28.955Z","etag":null,"topics":["java","weixin"],"latest_commit_sha":null,"homepage":"https://github.com/sd4324530/fastweixin","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sd4324530.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-09T08:06:03.000Z","updated_at":"2024-10-12T06:57:53.000Z","dependencies_parsed_at":"2022-08-30T09:11:07.784Z","dependency_job_id":null,"html_url":"https://github.com/sd4324530/fastweixin","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sd4324530%2Ffastweixin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sd4324530%2Ffastweixin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sd4324530%2Ffastweixin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sd4324530%2Ffastweixin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sd4324530","download_url":"https://codeload.github.com/sd4324530/fastweixin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224230652,"owners_count":17277372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","weixin"],"created_at":"2024-08-02T14:00:39.890Z","updated_at":"2024-11-12T06:30:48.183Z","avatar_url":"https://github.com/sd4324530.png","language":"Java","funding_links":[],"categories":["Java","API\u0026客户端"],"sub_categories":["文件同步"],"readme":"fastweixin\n==========\n作者:peiyu\n\nQQ:[125331682](http://wpa.qq.com/msgrd?v=3\u0026uin=125331682\u0026site=qq\u0026menu=yes)\n\n技术讨论QQ群:[367162748](http://shang.qq.com/wpa/qunwpa?idkey=e279a5147f3cb248a536e118464c72068d9f6ef33278987e6f88a17aab603cbb)\n\n码云主页:[https://gitee.com/pyinjava/fastweixin](https://gitee.com/pyinjava/fastweixin)\n\n\n[![Build Status](https://api.travis-ci.org/sd4324530/fastweixin.png?branch=master)](https://travis-ci.org/sd4324530/fastweixin)\n[![@peiyu on weibo](https://img.shields.io/badge/weibo-%40peiyu-red.svg)](http://weibo.com/1728407960)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.sd4324530/fastweixin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.sd4324530/fastweixin)\n[![Circle CI](https://circleci.com/gh/sd4324530/fastweixin/tree/master.svg?style=svg)](https://circleci.com/gh/sd4324530/fastweixin/tree/master)\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/sd4324530/fastweixin?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)\n\n# 快速搭建微信公众平台服务器\n简单封装了所有与微信服务器交互的消息:文本消息、图片消息、图文消息等等\n提供了基于`springmvc`以及基于`servlet`框架的控制器，集成了微信服务器绑定、监听所有类型消息的方法\n使用时继承，重写即可，十分方便\n支持高级接口的API，框架中提供MenuAPI、CustomAPI、QrcodeAPI、UserAPI、MediaAPI、OauthAPI用于实现所有高级接口功能，使用极其简单\n\n内部实现token过期自动刷新，不用再关注token细节\n\n支持微信消息安全模式，但由于jdk的限制，导致想使用安全模式，必须修改jdk内部的jar包\n官方网站下载：\n\n[JCE无限制权限策略文件JDK7](http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html)\n\n[JCE无限制权限策略文件JDK8](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)\n\n\n\n下载后解压，可以看到local_policy.jar和US_export_policy.jar以及readme.txt\n如果安装了JRE，将两个jar文件放到%JRE_HOME%\\lib\\security目录下覆盖原来的文件\n如果安装了JDK，将两个jar文件放到%JDK_HOME%\\jre\\lib\\security目录下覆盖原来文件\n\n## 详细文档（感谢[luozhuang](http://blog.csdn.net/luozhuang) 的整理）\n\n[【fastweixin框架教程1】一分钟快速搭建微信公众平台JAVA服务器](http://blog.csdn.net/luozhuang/article/details/51321485)\n\n[【fastweixin框架教程2】weblogic javax.xml 解析xml问题](http://blog.csdn.net/luozhuang/article/details/51322065)\n\n[【fastweixin框架教程3】JAVA进行HTTPS网站访问，PKIX path building failed解决方法](http://blog.csdn.net/luozhuang/article/details/51322127)\n\n[【fastweixin框架教程4】AccessToken、QYAPIConfig管理](http://blog.csdn.net/luozhuang/article/details/51322177)\n\n[【fastweixin框架教程5】企业号成员部门管理](http://blog.csdn.net/luozhuang/article/details/51322220)\n\n[【fastweixin框架教程6】微信企业号给关注的用户主动发送推送消息](http://blog.csdn.net/luozhuang/article/details/51322292)\n\n[【fastweixin框架教程7】微信企业号自定义菜单接口开发](http://blog.csdn.net/luozhuang/article/details/51322516)\n\n[【fastweixin框架教程8】微信企业号临时素材管理](http://blog.csdn.net/luozhuang/article/details/51444137)\n\n[【fastweixin框架教程9】扩展API实例——QYOauthAPI](http://blog.csdn.net/luozhuang/article/details/51444222)\n\n\n\n\n## 基于`springmvc`项目的集成方法\n```Java\n@RestController\n@RequestMapping(\"/weixin\")\npublic class WeixinController extends WeixinControllerSupport {\n        private static final Logger log = LoggerFactory.getLogger(WeixinController.class);\n        private static final String TOKEN = \"myToken\";\n        //设置TOKEN，用于绑定微信服务器\n        @Override\n        protected String getToken() {\n            return TOKEN;\n        }\n        //使用安全模式时设置：APPID\n        //不再强制重写，有加密需要时自行重写该方法\n        @Override\n        protected String getAppId() {\n            return null;\n        }\n        //使用安全模式时设置：密钥\n        //不再强制重写，有加密需要时自行重写该方法\n        @Override\n        protected String getAESKey() {\n            return null;\n        }\n        //重写父类方法，处理对应的微信消息\n        @Override\n        protected BaseMsg handleTextMsg(TextReqMsg msg) {\n            String content = msg.getContent();\n            log.debug(\"用户发送到服务器的内容:{}\", content);\n            return new TextMsg(\"服务器回复用户消息!\");\n        }\n        /*1.1版本新增，重写父类方法，加入自定义微信消息处理器\n         *不是必须的，上面的方法是统一处理所有的文本消息，如果业务觉复杂，上面的会显得比较乱\n         *这个机制就是为了应对这种情况，每个MessageHandle就是一个业务，只处理指定的那部分消息\n         */\n        @Override\n        protected List\u003cMessageHandle\u003e initMessageHandles() {\n                List\u003cMessageHandle\u003e handles = new ArrayList\u003cMessageHandle\u003e();\n                handles.add(new MyMessageHandle());\n                return handles;\n        }\n        //1.1版本新增，重写父类方法，加入自定义微信事件处理器，同上\n        @Override\n        protected List\u003cEventHandle\u003e initEventHandles() {\n                List\u003cEventHandle\u003e handles = new ArrayList\u003cEventHandle\u003e();\n                handles.add(new MyEventHandle());\n                return handles;\n        }\n}\n```\n\n## 基于`servlet`项目的集成方法\n```Java\npublic class WeixinServlet extends WeixinServletSupport {\n        @Override\n        protected WeixinSupport getWeixinSupport() {\n                return new MyServletWeixinSupport();\n        }\n}\n//用户自行实现的微信消息收发处理器\npublic class MyServletWeixinSupport extends WeixinSupport {\n    private static final Logger log = LoggerFactory.getLogger(MyServletWeixinSupport.class);\n    @Override\n    protected String getToken() {\n        return \"myToken\";\n    }\n    @Override\n    protected BaseMsg handleTextMsg(TextReqMsg msg) {\n        String content = msg.getContent();\n        log.debug(\"用户发送到服务器的内容:{}\", content);\n        return new TextMsg(\"服务器回复用户消息!\");\n    }\n}\n```\n\nweb.xml配置\n\n```xml\n\u003cservlet\u003e\n    \u003cservlet-name\u003eweixin\u003c/servlet-name\u003e\n\t\u003cservlet-class\u003exxx.xxx.WeixinServlet\u003c/servlet-class\u003e\n\u003c/servlet\u003e\n\n\u003cservlet-mapping\u003e\n    \u003cservlet-name\u003eweixin\u003c/servlet-name\u003e\n    \u003curl-pattern\u003e/weixin\u003c/url-pattern\u003e\n\u003c/servlet-mapping\u003e\n```\n\n## 基于`Jfinal`框架项目的集成方法\n```Java\npublic class MyJfinalController extends Controller {\n    //用户自行实现的消息处理器\n    private WeixinSupport support = new MyServletWeixinSupport();\n    public void index() {\n            HttpServletRequest request = getRequest();\n            log.debug(\"method:{}\", request.getMethod());\n            //绑定微信服务器\n            if (\"GET\".equalsIgnoreCase(request.getMethod().toUpperCase())) {\n                support.bindServer(request, getResponse());\n                renderNull();\n            } else {\n                //处理消息\n                renderText(support.processRequest(request), \"text/xml\");\n            }\n        }\n}\n```\n\n\nChange Log\n=========\n[https://github.com/sd4324530/fastweixin/wiki/Change-Log](https://github.com/sd4324530/fastweixin/wiki/Change-Log)\n\nWhy Use\n=========\n[https://github.com/sd4324530/fastweixin/wiki/Why-use](https://github.com/sd4324530/fastweixin/wiki/Why-use)\n\nMaven 项目引入\n==========\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.sd4324530\u003c/groupId\u003e\n    \u003cartifactId\u003efastweixin\u003c/artifactId\u003e\n    \u003cversion\u003e1.3.15\u003c/version\u003e\n\u003c/dependency\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsd4324530%2Ffastweixin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsd4324530%2Ffastweixin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsd4324530%2Ffastweixin/lists"}