GithubHelp home page GithubHelp logo

binarywang / weixin-java-mp-multi-demo Goto Github PK

View Code? Open in Web Editor NEW
105.0 13.0 75.0 79 KB

微信公众号demo,基于WxJava 和 Spring MVC框架实现,支持多公众号

Java 99.73% Shell 0.27%
java weixin

weixin-java-mp-multi-demo's Introduction

Build Status

本项目为WxJava的Demo演示程序

已不建议使用本项目中展示的方式实现多公众号支持,可以参考 springboot的实现:https://github.com/binarywang/weixin-java-mp-demo , 更多其他类型的Demo请查阅:https://github.com/Wechat-Group/WxJava

本Demo使用Spring MVC 框架实现微信公众号开发功能,支持多公众号。

  1. 如果想使用更多公众号,请复制相关配置文件,修改spring配置文件添加相应配置,同时还需要增加相应的controller和service,具体可以参考已有源码进行操作。
  2. 如果只是使用一个公众号,建议使用另外的项目: https://github.com/binarywang/weixin-java-mp-demo-springmvc 或者 https://github.com/binarywang/weixin-java-mp-demo

使用步骤:

  1. 配置:
    1. 复制/src/main/resources/wx-gzh1.properties.template 生成wx-gzh1.properties 文件,填写相关配置;
    2. 复制/src/main/resources/wx-gzh2.properties.template 生成wx-gzh2.properties 文件,填写相关配置。
  2. 使用maven运行demo程序: mvn jetty:run 或者自己打 war包发布到tomcat运行;
  3. 配置微信公众号中的接口地址:http://xxx/api/gzh1/portalhttp://xxx/api/gzh2/portal (注意XXX需要是外网可访问的域名,需要符合微信官方的要求)
  4. 根据自己需要修改各个handler的实现,加入自己的业务逻辑

weixin-java-mp-multi-demo's People

Contributors

binarywang avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weixin-java-mp-multi-demo's Issues

这里提供一个我们公司现在在做的多公众号的思路

总体设计思路是采用多租户的模式,所有租户共用一套业务逻辑代码。
1、类似于集团+分店的模式
每张表里面都有集团code、分店code
每个集团一个公众号,甚至允许分店拥有自己的公众号

2、超级管理员在后台 分配集团管理员账号、并设置一个标识id
集团管理员登录后台配置微信各种参数、包括支付、菜单、素材等等。。。

3、在集团的公众号接入的地方,填上一个后台设置的这个标识id,

然后在程序里面处理这个id,用来标识这个公众号。

PS:目前像市面上的,有赞、微盟等很多做微商城的,他们做的是第三方公众平台,相当于是把公众号托管给了他们运营,他们具体的实现,我想应该也差不多这种吧

“NoSuchMethodErrors” due to multiple versions of org.apache.commons:commons-lang3:jar

Issue description

Hi, there are multiple versions of org.apache.commons:commons-lang3 in weixin-java-mp-multi-demo. As shown in the following dependency tree, according to Maven's “nearest wins” strategy, only org.apache.commons:commons-lang3:3.4 can be loaded, and org.apache.commons:commons-lang3:3.10 will be shadowed.

However, several methods defined in shadowed version org.apache.commons:commons-lang3:3.10 are referenced by client project via com.github.binarywang:weixin-java-mp:3.9.0, but missing in the actually loaded version org.apache.commons:commons-lang3:3.4.

For instance, the following missing methods(defined in org.apache.commons:commons-lang3:3.10) are actually referenced by weixin-java-mp-multi-demo, which will introduce a runtime error(i.e., "NoSuchMethodError") into weixin-java-mp-multi-demo.

1. org.apache.commons.lang3.StringUtils: java.lang.String replaceAll(java.lang.String,java.lang.String,java.lang.String) is invoked by weixin-java-mp-multi-demo via the following path:


paths------
<com.github.binarywang.demo.wx.mp.handler.SubscribeHandler: me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage handle(me.chanjar.weixin.mp.bean.message.WxMpXmlMessage,java.util.Map,me.chanjar.weixin.mp.api.WxMpService,me.chanjar.weixin.common.session.WxSessionManager)> weixin-java-mp-multi-demo\target\classes
<me.chanjar.weixin.mp.api.impl.WxMpUserServiceImpl: me.chanjar.weixin.mp.bean.result.WxMpUser userInfo(java.lang.String,java.lang.String)> Repositories\com\github\binarywang\weixin-java-mp\3.9.0\weixin-java-mp-3.9.0.jar
<me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl: java.lang.String get(me.chanjar.weixin.mp.enums.WxMpApiUrl,java.lang.String)> Repositories\com\github\binarywang\weixin-java-mp\3.9.0\weixin-java-mp-3.9.0.jar
<me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl: java.lang.String get(java.lang.String,java.lang.String)> Repositories\com\github\binarywang\weixin-java-mp\3.9.0\weixin-java-mp-3.9.0.jar
<me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl: java.lang.Object execute(me.chanjar.weixin.common.util.http.RequestExecutor,java.lang.String,java.lang.Object)> Repositories\com\github\binarywang\weixin-java-mp\3.9.0\weixin-java-mp-3.9.0.jar
<me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl: java.lang.Object executeInternal(me.chanjar.weixin.common.util.http.RequestExecutor,java.lang.String,java.lang.Object)> Repositories\com\github\binarywang\weixin-java-mp\3.9.0\weixin-java-mp-3.9.0.jar
<me.chanjar.weixin.common.util.DataUtils: java.lang.Object handleDataWithSecret(java.lang.Object)> Repositories\com\github\binarywang\weixin-java-common\3.9.0\weixin-java-common-3.9.0.jar
<org.apache.commons.lang3.StringUtils: java.lang.String replaceAll(java.lang.String,java.lang.String,java.lang.String)>

Suggested fixing solutions

Upgrade direct dependency org.apache.commons:commons-lang3 from 3.4 to 3.10.

Thank you very much for your attention.
Best regards,

Dependency tree----


[INFO] com.github.binarywang:weixin-java-mp-multi-demo:war:0.0.1-SNAPSHOT
[INFO] +- com.github.binarywang:weixin-java-mp:jar:3.9.0:compile
[INFO] |  \- com.github.binarywang:weixin-java-common:jar:3.9.0:compile
[INFO] |     +- (org.slf4j:slf4j-api:jar:1.7.24:compile - omitted for conflict with 1.7.2)
[INFO] |     +- com.thoughtworks.xstream:xstream:jar:1.4.11.1:compile
[INFO] |     |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |     |  \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] |     +- org.apache.httpcomponents:httpclient:jar:4.5:compile
[INFO] |     |  +- org.apache.httpcomponents:httpcore:jar:4.4.1:compile
[INFO] |     |  \- (commons-codec:commons-codec:jar:1.9:compile - omitted for conflict with 1.10)
[INFO] |     +- org.apache.httpcomponents:httpmime:jar:4.5:compile
[INFO] |     |  \- (org.apache.httpcomponents:httpclient:jar:4.5:compile - omitted for duplicate)
[INFO] |     +- org.slf4j:jcl-over-slf4j:jar:1.7.24:compile
[INFO] |     |  \- (org.slf4j:slf4j-api:jar:1.7.24:compile - omitted for duplicate)
[INFO] |     +- com.google.code.gson:gson:jar:2.8.0:compile
[INFO] |     +- commons-codec:commons-codec:jar:1.10:compile
[INFO] |     +- commons-io:commons-io:jar:2.5:compile
[INFO] |     +- (org.apache.commons:commons-lang3:jar:3.10:compile - omitted for conflict with 3.4)
[INFO] |     +- (com.google.guava:guava:jar:29.0-android:compile - omitted for conflict with 24.1.1-jre)
[INFO] |     \- org.dom4j:dom4j:jar:2.1.3:compile
[INFO] +- com.alibaba:fastjson:jar:1.2.31:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] +- com.google.guava:guava:jar:24.1.1-jre:compile
[INFO] |  +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] |  +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile
[INFO] |  +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile
[INFO] |  +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[INFO] |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.2:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.7.2:compile
[INFO] |  \- log4j:log4j:jar:1.2.17:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.3.2.RELEASE:compile
[INFO] |  +- org.springframework:spring-aop:jar:4.3.2.RELEASE:compile
[INFO] |  |  +- (org.springframework:spring-beans:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  |  \- (org.springframework:spring-core:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  +- org.springframework:spring-beans:jar:4.3.2.RELEASE:compile
[INFO] |  |  \- (org.springframework:spring-core:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  +- org.springframework:spring-context:jar:4.3.2.RELEASE:compile
[INFO] |  |  +- (org.springframework:spring-aop:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  |  +- (org.springframework:spring-beans:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  |  +- (org.springframework:spring-core:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  |  \- (org.springframework:spring-expression:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  +- org.springframework:spring-core:jar:4.3.2.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  +- org.springframework:spring-expression:jar:4.3.2.RELEASE:compile
[INFO] |  |  \- (org.springframework:spring-core:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  \- (org.springframework:spring-web:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] +- org.springframework:spring-web:jar:4.3.2.RELEASE:compile
[INFO] |  +- (org.springframework:spring-aop:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  +- (org.springframework:spring-beans:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  +- (org.springframework:spring-context:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] |  \- (org.springframework:spring-core:jar:4.3.2.RELEASE:compile - omitted for duplicate)
[INFO] +- org.springframework.security:spring-security-core:jar:4.2.17.RELEASE:compile
[INFO] |  +- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- (org.springframework:spring-aop:jar:4.3.26.RELEASE:compile - omitted for conflict with 4.3.2.RELEASE)
[INFO] |  +- (org.springframework:spring-beans:jar:4.3.26.RELEASE:compile - omitted for conflict with 4.3.2.RELEASE)
[INFO] |  +- (org.springframework:spring-context:jar:4.3.26.RELEASE:compile - omitted for conflict with 4.3.2.RELEASE)
[INFO] |  +- (org.springframework:spring-core:jar:4.3.26.RELEASE:compile - omitted for conflict with 4.3.2.RELEASE)
[INFO] |  \- (org.springframework:spring-expression:jar:4.3.26.RELEASE:compile - omitted for conflict with 4.3.2.RELEASE)
[INFO] +- org.aspectj:aspectjrt:jar:1.8.9:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.8.9:compile
[INFO] \- com.fasterxml.jackson.core:jackson-databind:jar:2.10.0.pr1:compile
[INFO]    +- com.fasterxml.jackson.core:jackson-annotations:jar:2.10.0.pr1:compile
[INFO]    \- com.fasterxml.jackson.core:jackson-core:jar:2.10.0.pr1:compile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.