This commit is contained in:
jinyu
2016-10-17 16:32:28 +08:00
parent 2325132ac7
commit 21b1f9ecad
132 changed files with 1057 additions and 193 deletions
@@ -5,80 +5,8 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 微信接口代理~start -->
<bean id="weixinProxy" class="com.foxinmy.weixin4j.mp.WeixinProxy">
<!-- 公众号信息:不声明则默认使用weixin4j.properties配置的weixin4j.account字段 -->
<constructor-arg>
<bean class="com.foxinmy.weixin4j.model.WeixinAccount">
<constructor-arg index="0" value="公众账号的appid" />
<constructor-arg index="1" value="公众账号的appsecret" />
</bean>
</constructor-arg>
<!-- token存储:不声明则默认使用文件方式(FileCacheStorager)保存,请自行引入redis配置文件 -->
<constructor-arg>
<bean class="com.foxinmy.weixin4j.cache.RedisCacheStorager">
<constructor-arg type="redis.clients.jedis.JedisPool">
<bean class="redis.clients.jedis.JedisPool">
<constructor-arg index="0">
<bean class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
</constructor-arg>
<constructor-arg index="1" value="${redis.host}" />
<constructor-arg index="2" value="${redis.port}" />
<constructor-arg index="3" value="${redis.timeout}" />
</bean>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
<!-- 微信接口代理~end -->
<!-- 微信支付接口代理~start -->
<bean id="weixinPayProxy" class="com.foxinmy.weixin4j.payment.WeixinPayProxy">
<constructor-arg>
<!-- 商户信息:不声明则默认使用weixin4j.properties配置的weixin4j.account字段 -->
<bean class="com.foxinmy.weixin4j.model.WeixinPayAccount">
<constructor-arg index="0" value="公众账号的appid" />
<constructor-arg index="1" value="商户平台的支付密钥:paySignkey" />
<constructor-arg index="2" value="商户平台的商户ID:mchId" />
<!-- 以下是证书配置,如用到请配置 -->
<constructor-arg index="3" value="加载支付证书文件的密码(默认为商户号)" />
<!-- ca证书:调用某些支付接口(如退款、红包)需要用到的证书文件,不声明则获取顺序为:weixin4j.properties#weixin4j.certificate.file->`classpath:ca.p12` -->
<constructor-arg index="4" value="/path/to/certificate/file" />
</bean>
</constructor-arg>
</bean>
<!-- 微信支付接口代理~end -->
<!-- 微信消息服务~start -->
<bean
class="com.foxinmy.weixin4j.example.server.Weixin4jServerStartupWithThread"
init-method="start" destroy-method="stop">
<!-- 端口号 微信暂时只支持80端口 所以需要自己把微信被动消息请求转发(nginx等)到这个端口上来 -->
<constructor-arg index="0" value="30000" />
<!-- token信息 -->
<constructor-arg index="1">
<!-- 明文模式 -->
<bean class="com.foxinmy.weixin4j.util.AesToken">
<constructor-arg index="0" value="开发者Token" />
</bean>
<!-- 加密模式 -->
<!-- bean class="com.foxinmy.weixin4j.util.AesToken"> <constructor-arg
index="0" value="公众号的应用ID(appid/corpid)" /> <constructor-arg index="1" value="开发者Token"
/> <constructor-arg index="2" value="解密的EncodingAESKey" /> </bean -->
</constructor-arg>
<!-- 处理微信消息的全限包名 -->
<constructor-arg index="2"
value="com.foxinmy.weixin4j.example.server.handler" />
</bean>
<!-- 微信消息服务~end -->
<!-- spring扫描策略~start -->
<context:component-scan base-package="com.foxinmy.weixin4j.example.server.handler" />
<!-- spring扫描策略~end -->
<import resource="spring-weixin4j-proxy.xml" />
<import resource="spring-weixin4j-server.xml" />
</beans>
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<mvc:resources mapping="/static/**" location="/static/" />
<context:component-scan base-package="com.foxinmy.weixin4j.example" />
</beans>
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 微信公众号SDK -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 微信接口代理~start -->
<bean id="weixinProxy" class="com.foxinmy.weixin4j.mp.WeixinProxy">
<!-- 公众号信息:不声明则默认使用weixin4j.properties配置的weixin4j.account字段 -->
<!-- constructor-arg>
<bean class="com.foxinmy.weixin4j.model.WeixinAccount">
<constructor-arg index="0" value="公众账号的appid" />
<constructor-arg index="1" value="公众账号的appsecret" />
</bean>
</constructor-arg -->
<!-- token存储:不声明则默认使用文件方式(FileCacheStorager)保存,请自行引入redis配置文件 -->
<!-- constructor-arg>
<bean class="com.foxinmy.weixin4j.cache.RedisCacheStorager">
<constructor-arg type="redis.clients.jedis.JedisPool">
<bean class="redis.clients.jedis.JedisPool">
<constructor-arg index="0">
<bean class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
</constructor-arg>
<constructor-arg index="1" value="${redis.host}" />
<constructor-arg index="2" value="${redis.port}" />
<constructor-arg index="3" value="${redis.timeout}" />
</bean>
</constructor-arg>
</bean>
</constructor-arg -->
</bean>
<!-- 微信接口代理~end -->
<!-- 微信支付接口代理~start -->
<bean id="weixinPayProxy" class="com.foxinmy.weixin4j.payment.WeixinPayProxy">
<constructor-arg>
<!-- 商户信息:不声明则默认使用weixin4j.properties配置的weixin4j.account字段 -->
<bean class="com.foxinmy.weixin4j.model.WeixinPayAccount">
<constructor-arg index="0" value="公众账号的appid" />
<constructor-arg index="1" value="商户平台的支付密钥:paySignkey" />
<constructor-arg index="2" value="商户平台的商户ID:mchId" />
<!-- 以下是证书配置,如用到请配置 -->
<constructor-arg index="3" value="加载支付证书文件的密码(默认为商户号)" />
<!-- ca证书:调用某些支付接口(如退款、红包)需要用到的证书文件,不声明则获取顺序为:weixin4j.properties#weixin4j.certificate.file->`classpath:ca.p12` -->
<constructor-arg index="4" value="/path/to/certificate/file" />
</bean>
</constructor-arg>
</bean>
<!-- 微信支付接口代理~end -->
</beans>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 微信被动消息服务,这里值得强调的是:
weixin4j-serve本身是作为一个单独的服务来启动的,可以不依赖Spring容器,
但考虑到目前都是Spring mvc的架构,这里就需要使用一个独立的线程去启动服务,其实本身没有使用spring mvc的API
以后会考虑支持servlet api去集成不同的web框架。 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 微信消息服务~start -->
<bean
class="com.foxinmy.weixin4j.example.server.Weixin4jServerStartupWithThread"
init-method="start" destroy-method="stop">
<!-- 端口号 微信暂时只支持80端口 所以需要自己把微信被动消息请求转发(nginx等)到这个端口上来 -->
<constructor-arg index="0" value="30000" />
<!-- token信息 -->
<constructor-arg index="1">
<!-- 明文模式 -->
<bean class="com.foxinmy.weixin4j.util.AesToken">
<constructor-arg index="0" value="开发者Token" />
</bean>
<!-- 加密模式 -->
<!-- bean class="com.foxinmy.weixin4j.util.AesToken"> <constructor-arg
index="0" value="公众号的应用ID(appid/corpid)" /> <constructor-arg index="1" value="开发者Token"
/> <constructor-arg index="2" value="解密的EncodingAESKey" /> </bean -->
</constructor-arg>
<!-- 处理微信消息的全限包名 -->
<constructor-arg index="2"
value="com.foxinmy.weixin4j.example.server.handler" />
</bean>
<!-- 微信消息服务~end -->
<!-- spring扫描加载消息处理类~start -->
<context:component-scan base-package="com.foxinmy.weixin4j.example.server.handler" />
<!-- spring扫描加载消息处理类~end -->
</beans>