├── .circleci └── config.yml ├── .editorconfig ├── .gitee └── ISSUE_TEMPLATE.md ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── stale.yml └── workflows │ └── maven-publish.yml ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── demo.md ├── images ├── api-signature │ ├── api-signature-1.png │ └── api-signature-2.png ├── banners │ ├── aliyun.jpg │ ├── coding.jpg │ ├── tcloud.jpg │ └── wiki.jpg └── qrcodes │ ├── alipay.jpg │ ├── cp.png │ ├── ding.jpg │ ├── mp.png │ └── wepay.jpg ├── others ├── .mvn │ └── wrapper │ │ └── maven-wrapper.properties ├── check-dependency-updates.sh ├── check-plugin-updates.sh ├── check-property-updates.sh ├── mvnw ├── mvnw.cmd ├── weixin-java-config │ └── README.md └── weixin-java-osgi │ └── pom.xml ├── pom.xml ├── quality-checks └── google_checks.xml ├── solon-plugins ├── pom.xml ├── wx-java-channel-multi-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── channel │ │ │ │ ├── configuration │ │ │ │ └── services │ │ │ │ │ ├── AbstractWxChannelConfiguration.java │ │ │ │ │ ├── WxChannelInJedisConfiguration.java │ │ │ │ │ ├── WxChannelInMemoryConfiguration.java │ │ │ │ │ └── WxChannelInRedissonConfiguration.java │ │ │ │ ├── enums │ │ │ │ ├── HttpClientType.java │ │ │ │ └── StorageType.java │ │ │ │ ├── integration │ │ │ │ └── WxChannelMultiPluginImpl.java │ │ │ │ ├── properties │ │ │ │ ├── WxChannelMultiProperties.java │ │ │ │ ├── WxChannelMultiRedisProperties.java │ │ │ │ └── WxChannelSingleProperties.java │ │ │ │ └── service │ │ │ │ ├── WxChannelMultiServices.java │ │ │ │ └── WxChannelMultiServicesImpl.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-multi-channel-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-channel-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── channel │ │ │ │ ├── config │ │ │ │ ├── WxChannelServiceAutoConfiguration.java │ │ │ │ └── storage │ │ │ │ │ ├── AbstractWxChannelConfigStorageConfiguration.java │ │ │ │ │ ├── WxChannelInJedisConfigStorageConfiguration.java │ │ │ │ │ ├── WxChannelInMemoryConfigStorageConfiguration.java │ │ │ │ │ └── WxChannelInRedissonConfigStorageConfiguration.java │ │ │ │ ├── enums │ │ │ │ ├── HttpClientType.java │ │ │ │ └── StorageType.java │ │ │ │ ├── integration │ │ │ │ └── WxChannelPluginImpl.java │ │ │ │ └── properties │ │ │ │ ├── RedisProperties.java │ │ │ │ └── WxChannelProperties.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-channel-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.yml ├── wx-java-cp-multi-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── cp_multi │ │ │ │ ├── configuration │ │ │ │ └── services │ │ │ │ │ ├── AbstractWxCpConfiguration.java │ │ │ │ │ ├── WxCpInJedisConfiguration.java │ │ │ │ │ ├── WxCpInMemoryConfiguration.java │ │ │ │ │ └── WxCpInRedissonConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxCpMultiPluginImpl.java │ │ │ │ ├── properties │ │ │ │ ├── WxCpMultiProperties.java │ │ │ │ ├── WxCpMultiRedisProperties.java │ │ │ │ └── WxCpSingleProperties.java │ │ │ │ └── service │ │ │ │ ├── WxCpMultiServices.java │ │ │ │ └── WxCpMultiServicesImpl.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-cp-multi-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-cp-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── cp │ │ │ │ ├── config │ │ │ │ └── WxCpServiceAutoConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxCpPluginImpl.java │ │ │ │ ├── properties │ │ │ │ ├── WxCpProperties.java │ │ │ │ └── WxCpRedisProperties.java │ │ │ │ └── storage │ │ │ │ ├── AbstractWxCpConfigStorageConfiguration.java │ │ │ │ ├── WxCpInJedisConfigStorageConfiguration.java │ │ │ │ ├── WxCpInMemoryConfigStorageConfiguration.java │ │ │ │ └── WxCpInRedissonConfigStorageConfiguration.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-cp-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-miniapp-multi-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── miniapp │ │ │ │ ├── configuration │ │ │ │ └── services │ │ │ │ │ ├── AbstractWxMaConfiguration.java │ │ │ │ │ ├── WxMaInJedisConfiguration.java │ │ │ │ │ ├── WxMaInMemoryConfiguration.java │ │ │ │ │ └── WxMaInRedissonConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxMiniappMultiPluginImpl.java │ │ │ │ ├── properties │ │ │ │ ├── WxMaMultiProperties.java │ │ │ │ ├── WxMaMultiRedisProperties.java │ │ │ │ └── WxMaSingleProperties.java │ │ │ │ └── service │ │ │ │ ├── WxMaMultiServices.java │ │ │ │ └── WxMaMultiServicesImpl.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-miniapp-multi-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-miniapp-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── miniapp │ │ │ │ ├── config │ │ │ │ ├── WxMaServiceAutoConfiguration.java │ │ │ │ └── storage │ │ │ │ │ ├── AbstractWxMaConfigStorageConfiguration.java │ │ │ │ │ ├── WxMaInJedisConfigStorageConfiguration.java │ │ │ │ │ ├── WxMaInMemoryConfigStorageConfiguration.java │ │ │ │ │ └── WxMaInRedissonConfigStorageConfiguration.java │ │ │ │ ├── enums │ │ │ │ ├── HttpClientType.java │ │ │ │ └── StorageType.java │ │ │ │ ├── integration │ │ │ │ └── WxMiniappPluginImpl.java │ │ │ │ └── properties │ │ │ │ ├── RedisProperties.java │ │ │ │ └── WxMaProperties.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-miniapp-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-mp-multi-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── mp_multi │ │ │ │ ├── configuration │ │ │ │ └── services │ │ │ │ │ ├── AbstractWxMpConfiguration.java │ │ │ │ │ ├── WxMpInJedisConfiguration.java │ │ │ │ │ ├── WxMpInMemoryConfiguration.java │ │ │ │ │ └── WxMpInRedissonConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxMpMultiPluginImpl.java │ │ │ │ ├── properties │ │ │ │ ├── WxMpMultiProperties.java │ │ │ │ ├── WxMpMultiRedisProperties.java │ │ │ │ └── WxMpSingleProperties.java │ │ │ │ └── service │ │ │ │ ├── WxMpMultiServices.java │ │ │ │ └── WxMpMultiServicesImpl.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-mp-multi-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-mp-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── mp │ │ │ │ ├── config │ │ │ │ ├── WxMpServiceAutoConfiguration.java │ │ │ │ └── WxMpStorageAutoConfiguration.java │ │ │ │ ├── enums │ │ │ │ ├── HttpClientType.java │ │ │ │ └── StorageType.java │ │ │ │ ├── integration │ │ │ │ └── WxMpPluginImpl.java │ │ │ │ └── properties │ │ │ │ ├── HostConfig.java │ │ │ │ ├── RedisProperties.java │ │ │ │ └── WxMpProperties.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-mp-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-open-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── open │ │ │ │ ├── config │ │ │ │ ├── WxOpenServiceAutoConfiguration.java │ │ │ │ └── storage │ │ │ │ │ ├── AbstractWxOpenConfigStorageConfiguration.java │ │ │ │ │ ├── WxOpenInJedisConfigStorageConfiguration.java │ │ │ │ │ ├── WxOpenInMemoryConfigStorageConfiguration.java │ │ │ │ │ └── WxOpenInRedissonConfigStorageConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxOpenPluginImpl.java │ │ │ │ └── properties │ │ │ │ ├── WxOpenProperties.java │ │ │ │ └── WxOpenRedisProperties.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-open-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.properties ├── wx-java-pay-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── binarywang │ │ │ │ └── solon │ │ │ │ └── wxjava │ │ │ │ └── pay │ │ │ │ ├── config │ │ │ │ └── WxPayAutoConfiguration.java │ │ │ │ ├── integration │ │ │ │ └── WxPayPluginImpl.java │ │ │ │ └── properties │ │ │ │ └── WxPayProperties.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── solon │ │ │ └── wx-java-pay-solon-plugin.properties │ │ └── test │ │ ├── java │ │ └── features │ │ │ └── test │ │ │ └── LoadTest.java │ │ └── resources │ │ └── app.yml └── wx-java-qidian-solon-plugin │ ├── README.md │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── solon │ │ │ └── wxjava │ │ │ └── qidian │ │ │ ├── config │ │ │ ├── WxQidianServiceAutoConfiguration.java │ │ │ └── WxQidianStorageAutoConfiguration.java │ │ │ ├── enums │ │ │ ├── HttpClientType.java │ │ │ └── StorageType.java │ │ │ ├── integration │ │ │ └── WxQidianPluginImpl.java │ │ │ └── properties │ │ │ ├── HostConfig.java │ │ │ ├── RedisProperties.java │ │ │ └── WxQidianProperties.java │ └── resources │ │ └── META-INF │ │ └── solon │ │ └── wx-java-qidian-solon-plugin.properties │ └── test │ ├── java │ └── features │ │ └── test │ │ └── LoadTest.java │ └── resources │ └── app.yml ├── spring-boot-starters ├── pom.xml ├── wx-java-channel-multi-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── channel │ │ │ ├── autoconfigure │ │ │ └── WxChannelMultiAutoConfiguration.java │ │ │ ├── configuration │ │ │ ├── WxChannelMultiServiceConfiguration.java │ │ │ └── services │ │ │ │ ├── AbstractWxChannelConfiguration.java │ │ │ │ ├── WxChannelInJedisConfiguration.java │ │ │ │ ├── WxChannelInMemoryConfiguration.java │ │ │ │ ├── WxChannelInRedisTemplateConfiguration.java │ │ │ │ └── WxChannelInRedissonConfiguration.java │ │ │ ├── enums │ │ │ ├── HttpClientType.java │ │ │ └── StorageType.java │ │ │ ├── properties │ │ │ ├── WxChannelMultiProperties.java │ │ │ ├── WxChannelMultiRedisProperties.java │ │ │ └── WxChannelSingleProperties.java │ │ │ └── service │ │ │ ├── WxChannelMultiServices.java │ │ │ └── WxChannelMultiServicesImpl.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-channel-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── channel │ │ │ ├── config │ │ │ ├── WxChannelAutoConfiguration.java │ │ │ ├── WxChannelServiceAutoConfiguration.java │ │ │ ├── WxChannelStorageAutoConfiguration.java │ │ │ └── storage │ │ │ │ ├── AbstractWxChannelConfigStorageConfiguration.java │ │ │ │ ├── WxChannelInJedisConfigStorageConfiguration.java │ │ │ │ ├── WxChannelInMemoryConfigStorageConfiguration.java │ │ │ │ ├── WxChannelInRedisTemplateConfigStorageConfiguration.java │ │ │ │ └── WxChannelInRedissonConfigStorageConfiguration.java │ │ │ ├── enums │ │ │ ├── HttpClientType.java │ │ │ └── StorageType.java │ │ │ └── properties │ │ │ ├── RedisProperties.java │ │ │ └── WxChannelProperties.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-cp-multi-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── cp │ │ │ ├── autoconfigure │ │ │ └── WxCpMultiAutoConfiguration.java │ │ │ ├── configuration │ │ │ ├── WxCpMultiServicesAutoConfiguration.java │ │ │ └── services │ │ │ │ ├── AbstractWxCpConfiguration.java │ │ │ │ ├── WxCpInJedisConfiguration.java │ │ │ │ ├── WxCpInMemoryConfiguration.java │ │ │ │ ├── WxCpInRedisTemplateConfiguration.java │ │ │ │ └── WxCpInRedissonConfiguration.java │ │ │ ├── properties │ │ │ ├── WxCpMultiProperties.java │ │ │ ├── WxCpMultiRedisProperties.java │ │ │ └── WxCpSingleProperties.java │ │ │ └── service │ │ │ ├── WxCpMultiServices.java │ │ │ └── WxCpMultiServicesImpl.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-cp-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── cp │ │ │ ├── config │ │ │ ├── WxCpAutoConfiguration.java │ │ │ ├── WxCpServiceAutoConfiguration.java │ │ │ └── WxCpStorageAutoConfiguration.java │ │ │ ├── properties │ │ │ ├── WxCpProperties.java │ │ │ └── WxCpRedisProperties.java │ │ │ └── storage │ │ │ ├── AbstractWxCpConfigStorageConfiguration.java │ │ │ ├── WxCpInJedisConfigStorageConfiguration.java │ │ │ ├── WxCpInMemoryConfigStorageConfiguration.java │ │ │ ├── WxCpInRedisTemplateConfigStorageConfiguration.java │ │ │ └── WxCpInRedissonConfigStorageConfiguration.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-miniapp-multi-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── miniapp │ │ │ ├── autoconfigure │ │ │ └── WxMaMultiAutoConfiguration.java │ │ │ ├── configuration │ │ │ ├── WxMaMultiServiceConfiguration.java │ │ │ └── services │ │ │ │ ├── AbstractWxMaConfiguration.java │ │ │ │ ├── WxMaInJedisConfiguration.java │ │ │ │ ├── WxMaInMemoryConfiguration.java │ │ │ │ └── WxMaInRedissonConfiguration.java │ │ │ ├── properties │ │ │ ├── WxMaMultiProperties.java │ │ │ ├── WxMaMultiRedisProperties.java │ │ │ └── WxMaSingleProperties.java │ │ │ └── service │ │ │ ├── WxMaMultiServices.java │ │ │ └── WxMaMultiServicesImpl.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-miniapp-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── miniapp │ │ │ ├── config │ │ │ ├── WxMaAutoConfiguration.java │ │ │ ├── WxMaServiceAutoConfiguration.java │ │ │ ├── WxMaStorageAutoConfiguration.java │ │ │ └── storage │ │ │ │ ├── AbstractWxMaConfigStorageConfiguration.java │ │ │ │ ├── WxMaInJedisConfigStorageConfiguration.java │ │ │ │ ├── WxMaInMemoryConfigStorageConfiguration.java │ │ │ │ ├── WxMaInRedisTemplateConfigStorageConfiguration.java │ │ │ │ └── WxMaInRedissonConfigStorageConfiguration.java │ │ │ ├── enums │ │ │ ├── HttpClientType.java │ │ │ └── StorageType.java │ │ │ └── properties │ │ │ ├── RedisProperties.java │ │ │ └── WxMaProperties.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-mp-multi-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── mp │ │ │ ├── autoconfigure │ │ │ └── WxMpMultiAutoConfiguration.java │ │ │ ├── configuration │ │ │ ├── WxMpMultiServiceConfiguration.java │ │ │ └── services │ │ │ │ ├── AbstractWxMpConfiguration.java │ │ │ │ ├── WxMpInJedisConfiguration.java │ │ │ │ ├── WxMpInMemoryConfiguration.java │ │ │ │ ├── WxMpInRedisTemplateConfiguration.java │ │ │ │ └── WxMpInRedissonConfiguration.java │ │ │ ├── properties │ │ │ ├── WxMpMultiProperties.java │ │ │ ├── WxMpMultiRedisProperties.java │ │ │ └── WxMpSingleProperties.java │ │ │ └── service │ │ │ ├── WxMpMultiServices.java │ │ │ └── WxMpMultiServicesImpl.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-mp-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── mp │ │ │ ├── config │ │ │ ├── WxMpAutoConfiguration.java │ │ │ ├── WxMpServiceAutoConfiguration.java │ │ │ └── WxMpStorageAutoConfiguration.java │ │ │ ├── enums │ │ │ ├── HttpClientType.java │ │ │ └── StorageType.java │ │ │ └── properties │ │ │ ├── HostConfig.java │ │ │ ├── RedisProperties.java │ │ │ └── WxMpProperties.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-open-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── open │ │ │ ├── config │ │ │ ├── WxOpenAutoConfiguration.java │ │ │ ├── WxOpenServiceAutoConfiguration.java │ │ │ ├── WxOpenStorageAutoConfiguration.java │ │ │ └── storage │ │ │ │ ├── AbstractWxOpenConfigStorageConfiguration.java │ │ │ │ ├── WxOpenInJedisConfigStorageConfiguration.java │ │ │ │ ├── WxOpenInMemoryConfigStorageConfiguration.java │ │ │ │ ├── WxOpenInRedisTemplateConfigStorageConfiguration.java │ │ │ │ └── WxOpenInRedissonConfigStorageConfiguration.java │ │ │ └── properties │ │ │ ├── WxOpenProperties.java │ │ │ └── WxOpenRedisProperties.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── wx-java-pay-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── binarywang │ │ │ └── spring │ │ │ └── starter │ │ │ └── wxjava │ │ │ └── pay │ │ │ ├── config │ │ │ └── WxPayAutoConfiguration.java │ │ │ └── properties │ │ │ └── WxPayProperties.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports └── wx-java-qidian-spring-boot-starter │ ├── README.md │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── com │ │ └── binarywang │ │ └── spring │ │ └── starter │ │ └── wxjava │ │ └── qidian │ │ ├── config │ │ ├── WxQidianAutoConfiguration.java │ │ ├── WxQidianServiceAutoConfiguration.java │ │ └── WxQidianStorageAutoConfiguration.java │ │ ├── enums │ │ ├── HttpClientType.java │ │ └── StorageType.java │ │ └── properties │ │ ├── HostConfig.java │ │ ├── RedisProperties.java │ │ └── WxQidianProperties.java │ └── resources │ └── META-INF │ ├── spring.factories │ └── spring │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── weixin-graal ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── github │ │ └── binarywang │ │ └── wx │ │ └── graal │ │ └── GraalProcessor.java │ └── resources │ └── META-INF │ └── services │ └── javax.annotation.processing.Processor ├── weixin-java-channel ├── pom.xml └── src │ ├── main │ └── java │ │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── channel │ │ ├── api │ │ ├── BaseWxChannelMessageService.java │ │ ├── BaseWxChannelService.java │ │ ├── WxAssistantService.java │ │ ├── WxChannelAddressService.java │ │ ├── WxChannelAfterSaleService.java │ │ ├── WxChannelBasicService.java │ │ ├── WxChannelBrandService.java │ │ ├── WxChannelCategoryService.java │ │ ├── WxChannelCompassFinderService.java │ │ ├── WxChannelCompassShopService.java │ │ ├── WxChannelCouponService.java │ │ ├── WxChannelFreightTemplateService.java │ │ ├── WxChannelFundService.java │ │ ├── WxChannelLiveDashboardService.java │ │ ├── WxChannelOrderService.java │ │ ├── WxChannelProductService.java │ │ ├── WxChannelService.java │ │ ├── WxChannelSharerService.java │ │ ├── WxChannelVipService.java │ │ ├── WxChannelWarehouseService.java │ │ ├── WxFinderLiveService.java │ │ ├── WxLeadComponentService.java │ │ ├── WxLeagueProductService.java │ │ ├── WxLeaguePromoterService.java │ │ ├── WxLeagueSupplierService.java │ │ ├── WxLeagueWindowService.java │ │ ├── WxStoreCooperationService.java │ │ ├── WxStoreHomePageService.java │ │ └── impl │ │ │ ├── BaseWxChannelMessageServiceImpl.java │ │ │ ├── BaseWxChannelServiceImpl.java │ │ │ ├── WxAssistantServiceImpl.java │ │ │ ├── WxChannelAddressServiceImpl.java │ │ │ ├── WxChannelAfterSaleServiceImpl.java │ │ │ ├── WxChannelBasicServiceImpl.java │ │ │ ├── WxChannelBrandServiceImpl.java │ │ │ ├── WxChannelCategoryServiceImpl.java │ │ │ ├── WxChannelCompassFinderServiceImpl.java │ │ │ ├── WxChannelCompassShopServiceImpl.java │ │ │ ├── WxChannelCouponServiceImpl.java │ │ │ ├── WxChannelFreightTemplateServiceImpl.java │ │ │ ├── WxChannelFundServiceImpl.java │ │ │ ├── WxChannelLiveDashboardServiceImpl.java │ │ │ ├── WxChannelOrderServiceImpl.java │ │ │ ├── WxChannelProductServiceImpl.java │ │ │ ├── WxChannelServiceHttpClientImpl.java │ │ │ ├── WxChannelServiceHttpComponentsImpl.java │ │ │ ├── WxChannelServiceImpl.java │ │ │ ├── WxChannelServiceOkHttpImpl.java │ │ │ ├── WxChannelSharerServiceImpl.java │ │ │ ├── WxChannelVipServiceImpl.java │ │ │ ├── WxChannelWarehouseServiceImpl.java │ │ │ ├── WxFinderLiveServiceImpl.java │ │ │ ├── WxLeadComponentServiceImpl.java │ │ │ ├── WxLeagueProductServiceImpl.java │ │ │ ├── WxLeaguePromoterServiceImpl.java │ │ │ ├── WxLeagueSupplierServiceImpl.java │ │ │ ├── WxLeagueWindowServiceImpl.java │ │ │ ├── WxStoreCooperationServiceImpl.java │ │ │ └── WxStoreHomePageServiceImpl.java │ │ ├── bean │ │ ├── address │ │ │ ├── AddressAddParam.java │ │ │ ├── AddressCode.java │ │ │ ├── AddressCodeResponse.java │ │ │ ├── AddressDetail.java │ │ │ ├── AddressIdParam.java │ │ │ ├── AddressIdResponse.java │ │ │ ├── AddressInfoResponse.java │ │ │ ├── AddressListParam.java │ │ │ ├── AddressListResponse.java │ │ │ └── OfflineAddressType.java │ │ ├── after │ │ │ ├── AfterSaleAcceptParam.java │ │ │ ├── AfterSaleDetail.java │ │ │ ├── AfterSaleExchangeDeliveryInfo.java │ │ │ ├── AfterSaleExchangeProductInfo.java │ │ │ ├── AfterSaleIdParam.java │ │ │ ├── AfterSaleInfo.java │ │ │ ├── AfterSaleInfoResponse.java │ │ │ ├── AfterSaleListParam.java │ │ │ ├── AfterSaleListResponse.java │ │ │ ├── AfterSaleProductInfo.java │ │ │ ├── AfterSaleReason.java │ │ │ ├── AfterSaleReasonResponse.java │ │ │ ├── AfterSaleRejectParam.java │ │ │ ├── AfterSaleRejectReason.java │ │ │ ├── AfterSaleRejectReasonResponse.java │ │ │ ├── AfterSaleReturnParam.java │ │ │ ├── AfterSaleVirtualNumberInfo.java │ │ │ ├── MerchantUploadInfo.java │ │ │ ├── RefundEvidenceParam.java │ │ │ ├── RefundInfo.java │ │ │ ├── RefundResp.java │ │ │ └── ReturnInfo.java │ │ ├── audit │ │ │ ├── AuditApplyResponse.java │ │ │ ├── AuditResponse.java │ │ │ ├── AuditResult.java │ │ │ ├── CategoryAuditInfo.java │ │ │ ├── CategoryAuditRequest.java │ │ │ ├── CategoryBrand.java │ │ │ ├── CatsV2.java │ │ │ └── ProductAuditInfo.java │ │ ├── base │ │ │ ├── AddressInfo.java │ │ │ ├── AttrInfo.java │ │ │ ├── OffsetParam.java │ │ │ ├── PageParam.java │ │ │ ├── StreamPageParam.java │ │ │ ├── TimeRange.java │ │ │ └── WxChannelBaseResponse.java │ │ ├── brand │ │ │ ├── BasicBrand.java │ │ │ ├── Brand.java │ │ │ ├── BrandApplicationDetail.java │ │ │ ├── BrandApplyListResponse.java │ │ │ ├── BrandGrantDetail.java │ │ │ ├── BrandInfo.java │ │ │ ├── BrandInfoResponse.java │ │ │ ├── BrandListResponse.java │ │ │ ├── BrandParam.java │ │ │ ├── BrandRegisterDetail.java │ │ │ └── BrandSearchParam.java │ │ ├── category │ │ │ ├── AccountCategoryResponse.java │ │ │ ├── CategoryAndQualificationList.java │ │ │ ├── CategoryDetailResult.java │ │ │ ├── CategoryQualification.java │ │ │ ├── CategoryQualificationResponse.java │ │ │ ├── PassCategoryInfo.java │ │ │ ├── PassCategoryResponse.java │ │ │ ├── QualificationInfo.java │ │ │ ├── ShopCategory.java │ │ │ └── ShopCategoryResponse.java │ │ ├── compass │ │ │ ├── CompassFinderBaseParam.java │ │ │ ├── finder │ │ │ │ ├── Field.java │ │ │ │ ├── FieldData.java │ │ │ │ ├── Overall.java │ │ │ │ ├── OverallResponse.java │ │ │ │ ├── ProductCompassData.java │ │ │ │ ├── ProductDataParam.java │ │ │ │ ├── ProductDataResponse.java │ │ │ │ ├── ProductInfo.java │ │ │ │ ├── ProductListResponse.java │ │ │ │ ├── SaleProfileData.java │ │ │ │ ├── SaleProfileDataParam.java │ │ │ │ └── SaleProfileDataResponse.java │ │ │ └── shop │ │ │ │ ├── CompassFinderIdParam.java │ │ │ │ ├── FinderAuthListResponse.java │ │ │ │ ├── FinderGmvData.java │ │ │ │ ├── FinderGmvItem.java │ │ │ │ ├── FinderListResponse.java │ │ │ │ ├── FinderOverallData.java │ │ │ │ ├── FinderOverallResponse.java │ │ │ │ ├── FinderProductListItem.java │ │ │ │ ├── FinderProductListResponse.java │ │ │ │ ├── FinderProductOverallResponse.java │ │ │ │ ├── FinderProductSimpleGmvData.java │ │ │ │ ├── ShopField.java │ │ │ │ ├── ShopLiveData.java │ │ │ │ ├── ShopLiveListResponse.java │ │ │ │ ├── ShopOverall.java │ │ │ │ ├── ShopOverallResponse.java │ │ │ │ ├── ShopProductCompassData.java │ │ │ │ ├── ShopProductDataParam.java │ │ │ │ ├── ShopProductDataResponse.java │ │ │ │ ├── ShopProductInfo.java │ │ │ │ ├── ShopProductListResponse.java │ │ │ │ ├── ShopSaleProfileData.java │ │ │ │ ├── ShopSaleProfileDataParam.java │ │ │ │ └── ShopSaleProfileDataResponse.java │ │ ├── complaint │ │ │ ├── ComplaintHistory.java │ │ │ ├── ComplaintOrderResponse.java │ │ │ └── ComplaintParam.java │ │ ├── cooperation │ │ │ ├── CooperationData.java │ │ │ ├── CooperationListResponse.java │ │ │ ├── CooperationQrCode.java │ │ │ ├── CooperationQrCodeResponse.java │ │ │ ├── CooperationSharerParam.java │ │ │ ├── CooperationStatus.java │ │ │ └── CooperationStatusResponse.java │ │ ├── coupon │ │ │ ├── AutoValidInfo.java │ │ │ ├── CouponDetailInfo.java │ │ │ ├── CouponIdInfo.java │ │ │ ├── CouponIdResponse.java │ │ │ ├── CouponInfo.java │ │ │ ├── CouponInfoResponse.java │ │ │ ├── CouponListParam.java │ │ │ ├── CouponListResponse.java │ │ │ ├── CouponParam.java │ │ │ ├── CouponStatusParam.java │ │ │ ├── DiscountCondition.java │ │ │ ├── DiscountInfo.java │ │ │ ├── ExtInfo.java │ │ │ ├── PromoteInfo.java │ │ │ ├── ReceiveInfo.java │ │ │ ├── StockInfo.java │ │ │ ├── UserCoupon.java │ │ │ ├── UserCouponIdInfo.java │ │ │ ├── UserCouponIdParam.java │ │ │ ├── UserCouponListParam.java │ │ │ ├── UserCouponListResponse.java │ │ │ ├── UserCouponResponse.java │ │ │ ├── UserExtInfo.java │ │ │ └── ValidInfo.java │ │ ├── delivery │ │ │ ├── DeliveryCompanyInfo.java │ │ │ ├── DeliveryCompanyResponse.java │ │ │ ├── DeliveryInfo.java │ │ │ ├── DeliverySendParam.java │ │ │ ├── FreightProductInfo.java │ │ │ ├── FreshInspectParam.java │ │ │ └── PackageAuditInfo.java │ │ ├── freight │ │ │ ├── AddressInfoList.java │ │ │ ├── AllConditionFreeDetail.java │ │ │ ├── AllFreightCalcMethod.java │ │ │ ├── ConditionFreeDetail.java │ │ │ ├── FreightCalcMethod.java │ │ │ ├── FreightTemplate.java │ │ │ ├── NotSendArea.java │ │ │ ├── TemplateAddParam.java │ │ │ ├── TemplateIdResponse.java │ │ │ ├── TemplateInfoResponse.java │ │ │ ├── TemplateListParam.java │ │ │ └── TemplateListResponse.java │ │ ├── fund │ │ │ ├── AccountInfo.java │ │ │ ├── AccountInfoParam.java │ │ │ ├── AccountInfoResponse.java │ │ │ ├── BalanceInfoResponse.java │ │ │ ├── FlowListResponse.java │ │ │ ├── FlowRelatedInfo.java │ │ │ ├── FundsFlow.java │ │ │ ├── FundsFlowResponse.java │ │ │ ├── FundsListParam.java │ │ │ ├── WithdrawDetailResponse.java │ │ │ ├── WithdrawListParam.java │ │ │ ├── WithdrawListResponse.java │ │ │ ├── WithdrawSubmitParam.java │ │ │ ├── WithdrawSubmitResponse.java │ │ │ ├── bank │ │ │ │ ├── BankCityInfo.java │ │ │ │ ├── BankCityResponse.java │ │ │ │ ├── BankInfo.java │ │ │ │ ├── BankInfoResponse.java │ │ │ │ ├── BankListResponse.java │ │ │ │ ├── BankProvinceInfo.java │ │ │ │ ├── BankProvinceResponse.java │ │ │ │ ├── BankSearchParam.java │ │ │ │ ├── BranchInfo.java │ │ │ │ ├── BranchInfoResponse.java │ │ │ │ └── BranchSearchParam.java │ │ │ └── qrcode │ │ │ │ ├── QrCheckResponse.java │ │ │ │ └── QrCodeResponse.java │ │ ├── home │ │ │ ├── background │ │ │ │ ├── BackgroundApplyResponse.java │ │ │ │ ├── BackgroundApplyResult.java │ │ │ │ └── BackgroundGetResponse.java │ │ │ ├── banner │ │ │ │ ├── BannerApplyDetail.java │ │ │ │ ├── BannerApplyInfo.java │ │ │ │ ├── BannerApplyParam.java │ │ │ │ ├── BannerApplyResponse.java │ │ │ │ ├── BannerGetResponse.java │ │ │ │ ├── BannerInfo.java │ │ │ │ ├── BannerItem.java │ │ │ │ ├── BannerItemDetail.java │ │ │ │ ├── BannerItemFinder.java │ │ │ │ ├── BannerItemOfficialAccount.java │ │ │ │ └── BannerItemProduct.java │ │ │ ├── tree │ │ │ │ ├── CatTreeNode.java │ │ │ │ ├── LevelTreeInfo.java │ │ │ │ ├── OneLevelTreeNode.java │ │ │ │ ├── TreeAuditResult.java │ │ │ │ ├── TreeAuditResultDetail.java │ │ │ │ ├── TreeProductEditInfo.java │ │ │ │ ├── TreeProductEditParam.java │ │ │ │ ├── TreeProductListInfo.java │ │ │ │ ├── TreeProductListParam.java │ │ │ │ ├── TreeProductListResponse.java │ │ │ │ ├── TreeProductListResult.java │ │ │ │ ├── TreeShowGetResponse.java │ │ │ │ ├── TreeShowInfo.java │ │ │ │ ├── TreeShowParam.java │ │ │ │ └── TreeShowSetResponse.java │ │ │ └── window │ │ │ │ ├── WindowProductIndexParam.java │ │ │ │ ├── WindowProductListParam.java │ │ │ │ ├── WindowProductSetting.java │ │ │ │ └── WindowProductSettingResponse.java │ │ ├── image │ │ │ ├── ChannelImageInfo.java │ │ │ ├── ChannelImageResponse.java │ │ │ ├── QualificationFileId.java │ │ │ ├── QualificationFileResponse.java │ │ │ └── UploadImageResponse.java │ │ ├── lead │ │ │ └── component │ │ │ │ ├── request │ │ │ │ ├── GetFinderLiveDataListRequest.java │ │ │ │ ├── GetFinderLiveLeadsDataRequest.java │ │ │ │ ├── GetLeadInfoByComponentRequest.java │ │ │ │ ├── GetLeadsComponentIdRequest.java │ │ │ │ ├── GetLeadsComponentPromoteRecordRequest.java │ │ │ │ ├── GetLeadsInfoByRequestIdRequest.java │ │ │ │ └── GetLeadsRequestIdRequest.java │ │ │ │ └── response │ │ │ │ ├── FinderAttrResponse.java │ │ │ │ ├── GetFinderLiveDataListResponse.java │ │ │ │ ├── GetFinderLiveLeadsDataResponse.java │ │ │ │ ├── GetLeadsComponentIdResponse.java │ │ │ │ ├── GetLeadsComponentPromoteRecordResponse.java │ │ │ │ ├── GetLeadsRequestIdResponse.java │ │ │ │ └── LeadInfoResponse.java │ │ ├── league │ │ │ ├── AddressInfo.java │ │ │ ├── CatInfo.java │ │ │ ├── DescInfo.java │ │ │ ├── ExpressInfo.java │ │ │ ├── SimpleProductInfo.java │ │ │ ├── product │ │ │ │ ├── BatchAddParam.java │ │ │ │ ├── BatchAddResponse.java │ │ │ │ ├── ProductDeleteParam.java │ │ │ │ ├── ProductDetailParam.java │ │ │ │ ├── ProductDetailResponse.java │ │ │ │ ├── ProductListParam.java │ │ │ │ ├── ProductListResponse.java │ │ │ │ ├── ProductUpdateParam.java │ │ │ │ └── ProductUpdateResponse.java │ │ │ ├── promoter │ │ │ │ ├── PromoterInfo.java │ │ │ │ ├── PromoterInfoResponse.java │ │ │ │ ├── PromoterListParam.java │ │ │ │ └── PromoterListResponse.java │ │ │ ├── supplier │ │ │ │ ├── BizBaseInfo.java │ │ │ │ ├── CommissionInfo.java │ │ │ │ ├── CommissionOrderListParam.java │ │ │ │ ├── CommissionOrderListResponse.java │ │ │ │ ├── CommissionOrderResponse.java │ │ │ │ ├── CoopProductDetailParam.java │ │ │ │ ├── CoopProductListParam.java │ │ │ │ ├── CoopProductListResponse.java │ │ │ │ ├── CoopProductResponse.java │ │ │ │ ├── FlowListParam.java │ │ │ │ ├── FundsFlowInfo.java │ │ │ │ ├── ProductInfo.java │ │ │ │ ├── ShopDetailResponse.java │ │ │ │ ├── ShopListResponse.java │ │ │ │ ├── SkuInfo.java │ │ │ │ ├── SupplierBalanceResponse.java │ │ │ │ ├── SupplierFlowDetailResponse.java │ │ │ │ └── SupplierFlowListResponse.java │ │ │ └── window │ │ │ │ ├── AuthInfo.java │ │ │ │ ├── AuthInfoResponse.java │ │ │ │ ├── AuthStatusResponse.java │ │ │ │ ├── ProductSearchParam.java │ │ │ │ ├── WindowProductListResponse.java │ │ │ │ ├── WindowProductParam.java │ │ │ │ └── WindowProductResponse.java │ │ ├── limit │ │ │ ├── LimitSku.java │ │ │ ├── LimitTaskAddResponse.java │ │ │ ├── LimitTaskInfo.java │ │ │ ├── LimitTaskListParam.java │ │ │ ├── LimitTaskListResponse.java │ │ │ └── LimitTaskParam.java │ │ ├── live │ │ │ └── dashboard │ │ │ │ ├── ConversionMetric.java │ │ │ │ ├── DataNode.java │ │ │ │ ├── DataNodeList.java │ │ │ │ ├── DataNodeSecondList.java │ │ │ │ ├── DataNodeThirdList.java │ │ │ │ ├── Dimension.java │ │ │ │ ├── Ended.java │ │ │ │ ├── EndedIndexItem.java │ │ │ │ ├── Fields.java │ │ │ │ ├── ItemConversionMetric.java │ │ │ │ ├── LiveComparisonIndex.java │ │ │ │ ├── LiveDashboardData.java │ │ │ │ ├── LiveDashboardData2.java │ │ │ │ ├── LiveDashboardData2Portrait.java │ │ │ │ ├── LiveDashboardData2Source.java │ │ │ │ ├── LiveDashboardData2Summary.java │ │ │ │ ├── LiveDataParam.java │ │ │ │ ├── LiveDataResponse.java │ │ │ │ ├── LiveDistChannelSourceStats.java │ │ │ │ ├── LiveDistributionByFlowTypeStat.java │ │ │ │ ├── LiveDistributionChannel.java │ │ │ │ ├── LiveDistributionSceneStat.java │ │ │ │ ├── LiveEcConversionMetric.java │ │ │ │ ├── LiveEcDataSummary.java │ │ │ │ ├── LiveEcProfile.java │ │ │ │ ├── LiveItem.java │ │ │ │ ├── LiveListParam.java │ │ │ │ ├── LiveListResponse.java │ │ │ │ ├── OnAir.java │ │ │ │ ├── OnAirIndexItem.java │ │ │ │ ├── Point.java │ │ │ │ ├── QuarterlyGrowthRate.java │ │ │ │ ├── Series.java │ │ │ │ ├── SingleLiveEcSpuDataPageV2.java │ │ │ │ ├── SpuBaseData.java │ │ │ │ ├── SpuData.java │ │ │ │ └── SubLiveDistChannelSourceStats.java │ │ ├── message │ │ │ ├── SessionMessage.java │ │ │ ├── after │ │ │ │ ├── AfterSaleMessage.java │ │ │ │ ├── AfterSaleStatusInfo.java │ │ │ │ ├── ComplaintInfo.java │ │ │ │ └── ComplaintMessage.java │ │ │ ├── coupon │ │ │ │ ├── CouponActionInfo.java │ │ │ │ ├── CouponActionMessage.java │ │ │ │ ├── CouponReceiveMessage.java │ │ │ │ ├── UserCouponActionInfo.java │ │ │ │ ├── UserCouponExpireMessage.java │ │ │ │ └── UserCouponUseMessage.java │ │ │ ├── fund │ │ │ │ ├── AccountNotifyMessage.java │ │ │ │ ├── BankNotifyInfo.java │ │ │ │ ├── QrNotifyInfo.java │ │ │ │ ├── QrNotifyMessage.java │ │ │ │ ├── WithdrawNotifyInfo.java │ │ │ │ └── WithdrawNotifyMessage.java │ │ │ ├── order │ │ │ │ ├── OrderCancelInfo.java │ │ │ │ ├── OrderCancelMessage.java │ │ │ │ ├── OrderConfirmInfo.java │ │ │ │ ├── OrderConfirmMessage.java │ │ │ │ ├── OrderDeliveryInfo.java │ │ │ │ ├── OrderDeliveryMessage.java │ │ │ │ ├── OrderExtInfo.java │ │ │ │ ├── OrderExtMessage.java │ │ │ │ ├── OrderIdInfo.java │ │ │ │ ├── OrderIdMessage.java │ │ │ │ ├── OrderPayInfo.java │ │ │ │ ├── OrderPayMessage.java │ │ │ │ ├── OrderSettleInfo.java │ │ │ │ ├── OrderSettleMessage.java │ │ │ │ └── OrderStatusMessage.java │ │ │ ├── product │ │ │ │ ├── BrandMessage.java │ │ │ │ ├── CategoryAuditMessage.java │ │ │ │ ├── SpuAuditMessage.java │ │ │ │ ├── SpuStatusMessage.java │ │ │ │ └── SpuStockMessage.java │ │ │ ├── sharer │ │ │ │ └── SharerChangeMessage.java │ │ │ ├── store │ │ │ │ ├── CloseStoreMessage.java │ │ │ │ └── NicknameUpdateMessage.java │ │ │ ├── supplier │ │ │ │ ├── SupplierItemInfo.java │ │ │ │ └── SupplierItemMessage.java │ │ │ ├── vip │ │ │ │ ├── CouponInfo.java │ │ │ │ ├── ExchangeInfo.java │ │ │ │ ├── ExchangeInfoMessage.java │ │ │ │ ├── ProductInfo.java │ │ │ │ ├── UserInfo.java │ │ │ │ └── UserInfoMessage.java │ │ │ └── voucher │ │ │ │ ├── VoucherInfo.java │ │ │ │ └── VoucherMessage.java │ │ ├── order │ │ │ ├── AfterSaleDetail.java │ │ │ ├── AfterSaleOrderInfo.java │ │ │ ├── ChangeOrderInfo.java │ │ │ ├── DecodeAddressInfo.java │ │ │ ├── DecodeSensitiveInfoResponse.java │ │ │ ├── DeliveryProductInfo.java │ │ │ ├── DeliveryUpdateParam.java │ │ │ ├── OrderAddressInfo.java │ │ │ ├── OrderAddressParam.java │ │ │ ├── OrderAgentInfo.java │ │ │ ├── OrderCommissionInfo.java │ │ │ ├── OrderCouponInfo.java │ │ │ ├── OrderCustomInfo.java │ │ │ ├── OrderDeliveryInfo.java │ │ │ ├── OrderDetailInfo.java │ │ │ ├── OrderExtInfo.java │ │ │ ├── OrderGreetingCardInfo.java │ │ │ ├── OrderIdParam.java │ │ │ ├── OrderInfo.java │ │ │ ├── OrderInfoParam.java │ │ │ ├── OrderInfoResponse.java │ │ │ ├── OrderListParam.java │ │ │ ├── OrderListResponse.java │ │ │ ├── OrderPayInfo.java │ │ │ ├── OrderPriceInfo.java │ │ │ ├── OrderPriceParam.java │ │ │ ├── OrderProductExtraService.java │ │ │ ├── OrderProductInfo.java │ │ │ ├── OrderRefundInfo.java │ │ │ ├── OrderRemarkParam.java │ │ │ ├── OrderSearchCondition.java │ │ │ ├── OrderSearchParam.java │ │ │ ├── OrderSettleInfo.java │ │ │ ├── OrderSharerInfo.java │ │ │ ├── OrderSkuDeliverInfo.java │ │ │ ├── OrderSkuShareInfo.java │ │ │ ├── OrderSourceInfo.java │ │ │ ├── QualityInsepctInfo.java │ │ │ ├── RechargeInfo.java │ │ │ ├── TelNumberExtInfo.java │ │ │ ├── VirtualNumberInfo.java │ │ │ └── VirtualTelNumberResponse.java │ │ ├── product │ │ │ ├── AfterSaleInfo.java │ │ │ ├── DescriptionInfo.java │ │ │ ├── ExpressInfo.java │ │ │ ├── ExtraServiceInfo.java │ │ │ ├── LimitInfo.java │ │ │ ├── ProductQuaInfo.java │ │ │ ├── ProductSaleLimitInfo.java │ │ │ ├── SkuDeliverInfo.java │ │ │ ├── SkuFastInfo.java │ │ │ ├── SkuInfo.java │ │ │ ├── SkuStockBatchList.java │ │ │ ├── SkuStockBatchParam.java │ │ │ ├── SkuStockBatchResponse.java │ │ │ ├── SkuStockInfo.java │ │ │ ├── SkuStockParam.java │ │ │ ├── SkuStockResponse.java │ │ │ ├── SpuCategory.java │ │ │ ├── SpuFastInfo.java │ │ │ ├── SpuGetResponse.java │ │ │ ├── SpuInfo.java │ │ │ ├── SpuListParam.java │ │ │ ├── SpuListResponse.java │ │ │ ├── SpuSimpleInfo.java │ │ │ ├── SpuSizeChart.java │ │ │ ├── SpuSizeChartItem.java │ │ │ ├── SpuStockInfo.java │ │ │ ├── SpuUpdateInfo.java │ │ │ ├── SpuUpdateResponse.java │ │ │ ├── WarehouseStockInfo.java │ │ │ └── link │ │ │ │ ├── ProductH5UrlResponse.java │ │ │ │ ├── ProductQrCodeResponse.java │ │ │ │ └── ProductTagLinkResponse.java │ │ ├── sharer │ │ │ ├── FinderSceneInfo.java │ │ │ ├── SharerBindResponse.java │ │ │ ├── SharerInfo.java │ │ │ ├── SharerInfoResponse.java │ │ │ ├── SharerListParam.java │ │ │ ├── SharerOrder.java │ │ │ ├── SharerOrderParam.java │ │ │ ├── SharerOrderResponse.java │ │ │ ├── SharerSearchParam.java │ │ │ ├── SharerSearchResponse.java │ │ │ ├── SharerUnbindParam.java │ │ │ └── SharerUnbindResponse.java │ │ ├── shop │ │ │ ├── ShopInfo.java │ │ │ └── ShopInfoResponse.java │ │ ├── token │ │ │ └── StableTokenParam.java │ │ ├── vip │ │ │ ├── ScoreInfo.java │ │ │ ├── UserGradeInfo.java │ │ │ ├── UserInfo.java │ │ │ ├── VipGradeParam.java │ │ │ ├── VipInfo.java │ │ │ ├── VipInfoParam.java │ │ │ ├── VipInfoResponse.java │ │ │ ├── VipListParam.java │ │ │ ├── VipListResponse.java │ │ │ ├── VipOpenIdParam.java │ │ │ ├── VipScoreParam.java │ │ │ └── VipScoreResponse.java │ │ ├── warehouse │ │ │ ├── LocationPriorityResponse.java │ │ │ ├── PriorityLocationParam.java │ │ │ ├── StockGetParam.java │ │ │ ├── UpdateLocationParam.java │ │ │ ├── Warehouse.java │ │ │ ├── WarehouseIdsResponse.java │ │ │ ├── WarehouseLocation.java │ │ │ ├── WarehouseLocationParam.java │ │ │ ├── WarehouseParam.java │ │ │ ├── WarehouseResponse.java │ │ │ ├── WarehouseStockParam.java │ │ │ └── WarehouseStockResponse.java │ │ └── window │ │ │ ├── request │ │ │ ├── AddWindowProductRequest.java │ │ │ ├── GetWindowProductListRequest.java │ │ │ └── WindowProductRequest.java │ │ │ └── response │ │ │ ├── GetWindowProductListResponse.java │ │ │ └── GetWindowProductResponse.java │ │ ├── common │ │ └── ChannelWxError.java │ │ ├── config │ │ ├── WxChannelConfig.java │ │ └── impl │ │ │ ├── WxChannelDefaultConfigImpl.java │ │ │ ├── WxChannelRedisConfigImpl.java │ │ │ └── WxChannelRedissonConfigImpl.java │ │ ├── constant │ │ ├── MessageEventConstants.java │ │ └── WxChannelApiUrlConstants.java │ │ ├── enums │ │ ├── AccountType.java │ │ ├── AfterSaleStatus.java │ │ ├── AfterSaleType.java │ │ ├── AfterSalesReason.java │ │ ├── BannerType.java │ │ ├── CommissionOrderStatus.java │ │ ├── ComplaintItemType.java │ │ ├── ComplaintStatus.java │ │ ├── CouponType.java │ │ ├── CouponValidType.java │ │ ├── DeliveryType.java │ │ ├── DimensionType.java │ │ ├── EcProfileDataNodeKey.java │ │ ├── FundsType.java │ │ ├── LiveDistributionFlowType.java │ │ ├── LiveDistributionSceneType.java │ │ ├── MessageType.java │ │ ├── OrderScene.java │ │ ├── PackageAuditItemType.java │ │ ├── PromoteType.java │ │ ├── QrCheckStatus.java │ │ ├── RefundReason.java │ │ ├── SaleProfileUserType.java │ │ ├── SendTime.java │ │ ├── ShareScene.java │ │ ├── SharerType.java │ │ ├── SpuEditStatus.java │ │ ├── SpuStatus.java │ │ ├── UserCouponStatus.java │ │ ├── WithdrawStatus.java │ │ ├── WxChannelErrorMsgEnum.java │ │ ├── WxCouponStatus.java │ │ └── WxOrderStatus.java │ │ ├── executor │ │ ├── ApacheHttpChannelFileUploadRequestExecutor.java │ │ ├── ApacheHttpChannelMediaDownloadRequestExecutor.java │ │ ├── ChannelFileUploadRequestExecutor.java │ │ ├── ChannelMediaDownloadRequestExecutor.java │ │ ├── HttpComponentsChannelFileUploadRequestExecutor.java │ │ └── HttpComponentsChannelMediaDownloadRequestExecutor.java │ │ ├── message │ │ ├── WxChannelMessage.java │ │ ├── WxChannelMessageRouter.java │ │ ├── WxChannelMessageRouterRule.java │ │ └── rule │ │ │ ├── HandlerConsumer.java │ │ │ ├── WxChannelMessageHandler.java │ │ │ ├── WxChannelMessageInterceptor.java │ │ │ └── WxChannelMessageMatcher.java │ │ └── util │ │ ├── JsonUtils.java │ │ ├── ResponseUtils.java │ │ ├── WxChCryptUtils.java │ │ └── XmlUtils.java │ └── test │ ├── java │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── channel │ │ ├── api │ │ └── impl │ │ │ ├── WxAssistantServiceImplTest.java │ │ │ ├── WxChannelAddressServiceImplTest.java │ │ │ ├── WxChannelAfterSaleServiceImplTest.java │ │ │ ├── WxChannelBasicServiceImplTest.java │ │ │ ├── WxChannelBrandServiceImplTest.java │ │ │ ├── WxChannelCategoryServiceImplTest.java │ │ │ ├── WxChannelCompassFinderServiceImplTest.java │ │ │ ├── WxChannelCompassShopServiceImplTest.java │ │ │ ├── WxChannelCouponServiceImplTest.java │ │ │ ├── WxChannelFreightTemplateServiceImplTest.java │ │ │ ├── WxChannelFundServiceImplTest.java │ │ │ ├── WxChannelLiveDashboardServiceImplTest.java │ │ │ ├── WxChannelOrderServiceImplTest.java │ │ │ ├── WxChannelProductServiceImplTest.java │ │ │ ├── WxChannelSharerServiceImplTest.java │ │ │ ├── WxChannelVipServiceImplTest.java │ │ │ ├── WxChannelWarehouseServiceImplTest.java │ │ │ ├── WxFinderLiveServiceImplTest.java │ │ │ ├── WxLeadComponentServiceImplTest.java │ │ │ ├── WxLeagueProductServiceImplTest.java │ │ │ ├── WxLeaguePromoterServiceImplTest.java │ │ │ ├── WxLeagueSupplierServiceImplTest.java │ │ │ ├── WxLeagueWindowServiceImplTest.java │ │ │ ├── WxStoreCooperationServiceImplTest.java │ │ │ └── WxStoreHomePageServiceImplTest.java │ │ ├── message │ │ ├── WxChannelMessageRouterRuleTest.java │ │ └── WxChannelMessageRouterTest.java │ │ ├── test │ │ ├── ApiTestModule.java │ │ └── TestConfig.java │ │ └── util │ │ ├── JsonUtilsTest.java │ │ └── ResponseUtilsTest.java │ └── resources │ ├── logback-test.xml │ ├── test-config.sample.xml │ ├── testng.xml │ └── tmp.png ├── weixin-java-cloudbase └── README.md ├── weixin-java-common ├── pom.xml └── src │ ├── main │ └── java │ │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── common │ │ ├── annotation │ │ └── Required.java │ │ ├── api │ │ ├── WxConsts.java │ │ ├── WxErrorExceptionHandler.java │ │ ├── WxMessageDuplicateChecker.java │ │ ├── WxMessageInMemoryDuplicateChecker.java │ │ ├── WxMessageInMemoryDuplicateCheckerSingleton.java │ │ └── WxMessageInRedisDuplicateChecker.java │ │ ├── bean │ │ ├── CommonUploadData.java │ │ ├── CommonUploadParam.java │ │ ├── ToJson.java │ │ ├── WxAccessToken.java │ │ ├── WxAccessTokenEntity.java │ │ ├── WxCardApiSignature.java │ │ ├── WxJsapiSignature.java │ │ ├── WxNetCheckResult.java │ │ ├── WxOAuth2UserInfo.java │ │ ├── imgproc │ │ │ ├── WxImgProcAiCropResult.java │ │ │ ├── WxImgProcQrCodeResult.java │ │ │ └── WxImgProcSuperResolutionResult.java │ │ ├── menu │ │ │ ├── WxMenu.java │ │ │ ├── WxMenuButton.java │ │ │ └── WxMenuRule.java │ │ ├── oauth2 │ │ │ └── WxOAuth2AccessToken.java │ │ ├── ocr │ │ │ ├── WxOcrBankCardResult.java │ │ │ ├── WxOcrBizLicenseResult.java │ │ │ ├── WxOcrCommResult.java │ │ │ ├── WxOcrDrivingLicenseResult.java │ │ │ ├── WxOcrDrivingResult.java │ │ │ ├── WxOcrIdCardResult.java │ │ │ ├── WxOcrImgSize.java │ │ │ └── WxOcrPos.java │ │ ├── result │ │ │ ├── WxMediaUploadResult.java │ │ │ ├── WxMinishopImageUploadCustomizeResult.java │ │ │ ├── WxMinishopImageUploadResult.java │ │ │ ├── WxMinishopPicFileCustomizeResult.java │ │ │ └── WxMinishopPicFileResult.java │ │ └── subscribemsg │ │ │ ├── CategoryData.java │ │ │ ├── PubTemplateKeyword.java │ │ │ ├── PubTemplateTitleListResult.java │ │ │ └── TemplateInfo.java │ │ ├── enums │ │ ├── TicketType.java │ │ └── WxType.java │ │ ├── error │ │ ├── WxChannelErrorMsgEnum.java │ │ ├── WxCpErrorMsgEnum.java │ │ ├── WxError.java │ │ ├── WxErrorException.java │ │ ├── WxMaErrorMsgEnum.java │ │ ├── WxMpErrorMsgEnum.java │ │ ├── WxOpenErrorMsgEnum.java │ │ └── WxRuntimeException.java │ │ ├── executor │ │ ├── CommonUploadRequestExecutor.java │ │ ├── CommonUploadRequestExecutorApacheImpl.java │ │ ├── CommonUploadRequestExecutorHttpComponentsImpl.java │ │ ├── CommonUploadRequestExecutorJoddHttpImpl.java │ │ └── CommonUploadRequestExecutorOkHttpImpl.java │ │ ├── redis │ │ ├── BaseWxRedisOps.java │ │ ├── JedisWxRedisOps.java │ │ ├── RedisTemplateWxRedisOps.java │ │ ├── RedissonWxRedisOps.java │ │ └── WxRedisOps.java │ │ ├── requestexecuter │ │ └── ocr │ │ │ ├── OcrDiscernApacheHttpRequestExecutor.java │ │ │ ├── OcrDiscernHttpComponentsRequestExecutor.java │ │ │ └── OcrDiscernRequestExecutor.java │ │ ├── service │ │ ├── WxImgProcService.java │ │ ├── WxOAuth2Service.java │ │ ├── WxOAuth2ServiceDecorator.java │ │ ├── WxOcrService.java │ │ └── WxService.java │ │ ├── session │ │ ├── Constants.java │ │ ├── InternalSession.java │ │ ├── InternalSessionManager.java │ │ ├── LocalStrings.properties │ │ ├── StandardSession.java │ │ ├── StandardSessionFacade.java │ │ ├── StandardSessionManager.java │ │ ├── TooManyActiveSessionsException.java │ │ ├── WxSession.java │ │ └── WxSessionManager.java │ │ └── util │ │ ├── BeanUtils.java │ │ ├── DataUtils.java │ │ ├── LogExceptionHandler.java │ │ ├── RandomUtils.java │ │ ├── SignUtils.java │ │ ├── XmlUtils.java │ │ ├── crypto │ │ ├── ByteGroup.java │ │ ├── PKCS7Encoder.java │ │ ├── SHA1.java │ │ └── WxCryptUtil.java │ │ ├── fs │ │ └── FileUtils.java │ │ ├── http │ │ ├── BaseMediaDownloadRequestExecutor.java │ │ ├── HttpClientType.java │ │ ├── HttpResponseProxy.java │ │ ├── InputStreamData.java │ │ ├── MediaInputStreamUploadRequestExecutor.java │ │ ├── MediaUploadRequestExecutor.java │ │ ├── MinishopUploadRequestCustomizeExecutor.java │ │ ├── MinishopUploadRequestExecutor.java │ │ ├── RequestExecutor.java │ │ ├── RequestHttp.java │ │ ├── ResponseHandler.java │ │ ├── SimpleGetRequestExecutor.java │ │ ├── SimplePostRequestExecutor.java │ │ ├── URIUtil.java │ │ ├── WxDnsResolver.java │ │ ├── apache │ │ │ ├── ApacheBasicResponseHandler.java │ │ │ ├── ApacheHttpClientBuilder.java │ │ │ ├── ApacheHttpDnsClientBuilder.java │ │ │ ├── ApacheHttpResponseProxy.java │ │ │ ├── ApacheMediaDownloadRequestExecutor.java │ │ │ ├── ApacheMediaInputStreamUploadRequestExecutor.java │ │ │ ├── ApacheMediaUploadRequestExecutor.java │ │ │ ├── ApacheMinishopMediaUploadRequestCustomizeExecutor.java │ │ │ ├── ApacheMinishopMediaUploadRequestExecutor.java │ │ │ ├── ApacheSimpleGetRequestExecutor.java │ │ │ ├── ApacheSimplePostRequestExecutor.java │ │ │ ├── ByteArrayResponseHandler.java │ │ │ ├── DefaultApacheHttpClientBuilder.java │ │ │ ├── InputStreamResponseHandler.java │ │ │ └── Utf8ResponseHandler.java │ │ ├── hc │ │ │ ├── BasicResponseHandler.java │ │ │ ├── ByteArrayResponseHandler.java │ │ │ ├── DefaultHttpComponentsClientBuilder.java │ │ │ ├── HttpComponentsClientBuilder.java │ │ │ ├── HttpComponentsMediaDownloadRequestExecutor.java │ │ │ ├── HttpComponentsMediaInputStreamUploadRequestExecutor.java │ │ │ ├── HttpComponentsMediaUploadRequestExecutor.java │ │ │ ├── HttpComponentsMinishopMediaUploadRequestCustomizeExecutor.java │ │ │ ├── HttpComponentsMinishopMediaUploadRequestExecutor.java │ │ │ ├── HttpComponentsResponseProxy.java │ │ │ ├── HttpComponentsSimpleGetRequestExecutor.java │ │ │ ├── HttpComponentsSimplePostRequestExecutor.java │ │ │ ├── InputStreamResponseHandler.java │ │ │ ├── NoopRetryStrategy.java │ │ │ └── Utf8ResponseHandler.java │ │ ├── jodd │ │ │ ├── JoddHttpMediaDownloadRequestExecutor.java │ │ │ ├── JoddHttpMediaInputStreamUploadRequestExecutor.java │ │ │ ├── JoddHttpMediaUploadRequestExecutor.java │ │ │ ├── JoddHttpMinishopMediaUploadRequestCustomizeExecutor.java │ │ │ ├── JoddHttpMinishopMediaUploadRequestExecutor.java │ │ │ ├── JoddHttpResponseProxy.java │ │ │ ├── JoddHttpSimpleGetRequestExecutor.java │ │ │ └── JoddHttpSimplePostRequestExecutor.java │ │ └── okhttp │ │ │ ├── DefaultOkHttpClientBuilder.java │ │ │ ├── OkHttpClientBuilder.java │ │ │ ├── OkHttpDnsClientBuilder.java │ │ │ ├── OkHttpMediaDownloadRequestExecutor.java │ │ │ ├── OkHttpMediaInputStreamUploadRequestExecutor.java │ │ │ ├── OkHttpMediaUploadRequestExecutor.java │ │ │ ├── OkHttpMinishopMediaUploadRequestCustomizeExecutor.java │ │ │ ├── OkHttpMinishopMediaUploadRequestExecutor.java │ │ │ ├── OkHttpProxyInfo.java │ │ │ ├── OkHttpResponseProxy.java │ │ │ ├── OkHttpSimpleGetRequestExecutor.java │ │ │ └── OkHttpSimplePostRequestExecutor.java │ │ ├── json │ │ ├── GsonHelper.java │ │ ├── GsonParser.java │ │ ├── WxAccessTokenAdapter.java │ │ ├── WxBooleanTypeAdapter.java │ │ ├── WxDateTypeAdapter.java │ │ ├── WxErrorAdapter.java │ │ ├── WxGsonBuilder.java │ │ ├── WxMediaUploadResultAdapter.java │ │ ├── WxMenuGsonAdapter.java │ │ └── WxNetCheckResultGsonAdapter.java │ │ ├── locks │ │ ├── JedisDistributedLock.java │ │ └── RedisTemplateSimpleDistributedLock.java │ │ ├── res │ │ └── StringManager.java │ │ └── xml │ │ ├── IntegerArrayConverter.java │ │ ├── LongArrayConverter.java │ │ ├── StringArrayConverter.java │ │ ├── XStreamCDataConverter.java │ │ ├── XStreamInitializer.java │ │ ├── XStreamMediaIdConverter.java │ │ └── XStreamReplaceNameConverter.java │ └── test │ ├── java │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── common │ │ ├── api │ │ ├── WxMessageInMemoryDuplicateCheckerSingletonTest.java │ │ ├── WxMessageInMemoryDuplicateCheckerTest.java │ │ └── WxMessageInRedisDuplicateCheckerTest.java │ │ ├── bean │ │ ├── WxAccessTokenTest.java │ │ ├── WxMenuTest.java │ │ └── WxNetCheckResultTest.java │ │ ├── error │ │ └── WxErrorTest.java │ │ ├── redis │ │ ├── CommonWxRedisOpsTest.java │ │ ├── JedisWxRedisOpsTest.java │ │ ├── RedisTemplateWxRedisOpsTest.java │ │ └── RedissonWxRedisOpsTest.java │ │ ├── session │ │ └── SessionTest.java │ │ └── util │ │ ├── DataUtilsTest.java │ │ ├── XmlUtilsTest.java │ │ ├── crypto │ │ ├── SHA1Test.java │ │ └── WxCryptUtilTest.java │ │ ├── fs │ │ └── FileUtilsTest.java │ │ ├── http │ │ ├── HttpResponseProxyTest.java │ │ ├── apache │ │ │ └── DefaultApacheHttpClientBuilderTest.java │ │ └── okhttp │ │ │ └── DefaultOkHttpClientBuilderTest.java │ │ ├── json │ │ └── GsonHelperTest.java │ │ └── locks │ │ └── RedisTemplateSimpleDistributedLockTest.java │ └── resources │ ├── logback-test.xml │ └── testng.xml ├── weixin-java-cp ├── LICENSE ├── pom.xml └── src │ ├── main │ └── java │ │ ├── com │ │ └── tencent │ │ │ └── wework │ │ │ └── Finance.java │ │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── cp │ │ ├── api │ │ ├── WxCpAgentService.java │ │ ├── WxCpAgentWorkBenchService.java │ │ ├── WxCpChatService.java │ │ ├── WxCpCorpGroupService.java │ │ ├── WxCpDepartmentService.java │ │ ├── WxCpExportService.java │ │ ├── WxCpExternalContactService.java │ │ ├── WxCpGroupRobotService.java │ │ ├── WxCpKfService.java │ │ ├── WxCpLivingService.java │ │ ├── WxCpMediaService.java │ │ ├── WxCpMeetingService.java │ │ ├── WxCpMenuService.java │ │ ├── WxCpMessageService.java │ │ ├── WxCpMsgAuditService.java │ │ ├── WxCpOAuth2Service.java │ │ ├── WxCpOaAgentService.java │ │ ├── WxCpOaCalendarService.java │ │ ├── WxCpOaMailService.java │ │ ├── WxCpOaMeetingRoomService.java │ │ ├── WxCpOaScheduleService.java │ │ ├── WxCpOaService.java │ │ ├── WxCpOaWeDocService.java │ │ ├── WxCpOaWeDriveService.java │ │ ├── WxCpSchoolHealthService.java │ │ ├── WxCpSchoolService.java │ │ ├── WxCpSchoolUserService.java │ │ ├── WxCpService.java │ │ ├── WxCpTagService.java │ │ ├── WxCpTaskCardService.java │ │ ├── WxCpUserService.java │ │ └── impl │ │ │ ├── BaseWxCpServiceImpl.java │ │ │ ├── WxCpAgentServiceImpl.java │ │ │ ├── WxCpAgentWorkBenchServiceImpl.java │ │ │ ├── WxCpChatServiceImpl.java │ │ │ ├── WxCpCorpGroupServiceImpl.java │ │ │ ├── WxCpDepartmentServiceImpl.java │ │ │ ├── WxCpExportServiceImpl.java │ │ │ ├── WxCpExternalContactServiceImpl.java │ │ │ ├── WxCpGroupRobotServiceImpl.java │ │ │ ├── WxCpKfServiceImpl.java │ │ │ ├── WxCpLivingServiceImpl.java │ │ │ ├── WxCpMediaServiceImpl.java │ │ │ ├── WxCpMeetingServiceImpl.java │ │ │ ├── WxCpMenuServiceImpl.java │ │ │ ├── WxCpMessageServiceImpl.java │ │ │ ├── WxCpMsgAuditServiceImpl.java │ │ │ ├── WxCpOAuth2ServiceImpl.java │ │ │ ├── WxCpOMailServiceImpl.java │ │ │ ├── WxCpOaAgentServiceImpl.java │ │ │ ├── WxCpOaCalendarServiceImpl.java │ │ │ ├── WxCpOaMeetingRoomServiceImpl.java │ │ │ ├── WxCpOaOaScheduleServiceImpl.java │ │ │ ├── WxCpOaServiceImpl.java │ │ │ ├── WxCpOaWeDocServiceImpl.java │ │ │ ├── WxCpOaWeDriveServiceImpl.java │ │ │ ├── WxCpSchoolHealthServiceImpl.java │ │ │ ├── WxCpSchoolServiceImpl.java │ │ │ ├── WxCpSchoolUserServiceImpl.java │ │ │ ├── WxCpServiceApacheHttpClientImpl.java │ │ │ ├── WxCpServiceHttpComponentsImpl.java │ │ │ ├── WxCpServiceImpl.java │ │ │ ├── WxCpServiceJoddHttpImpl.java │ │ │ ├── WxCpServiceOkHttpImpl.java │ │ │ ├── WxCpServiceOnTpImpl.java │ │ │ ├── WxCpTagServiceImpl.java │ │ │ ├── WxCpTaskCardServiceImpl.java │ │ │ └── WxCpUserServiceImpl.java │ │ ├── bean │ │ ├── Gender.java │ │ ├── WxCpAgent.java │ │ ├── WxCpAgentJsapiSignature.java │ │ ├── WxCpAgentWorkBench.java │ │ ├── WxCpBaseResp.java │ │ ├── WxCpChat.java │ │ ├── WxCpDepart.java │ │ ├── WxCpInviteResult.java │ │ ├── WxCpMaJsCode2SessionResult.java │ │ ├── WxCpOauth2UserInfo.java │ │ ├── WxCpOpenUseridToUserid.java │ │ ├── WxCpOpenUseridToUseridResult.java │ │ ├── WxCpProviderToken.java │ │ ├── WxCpTag.java │ │ ├── WxCpTagAddOrRemoveUsersResult.java │ │ ├── WxCpTagGetResult.java │ │ ├── WxCpTaskCardUpdateResult.java │ │ ├── WxCpTpAdmin.java │ │ ├── WxCpTpAppQrcode.java │ │ ├── WxCpTpAuthInfo.java │ │ ├── WxCpTpContactSearch.java │ │ ├── WxCpTpContactSearchResp.java │ │ ├── WxCpTpConvertTmpExternalUserIdResult.java │ │ ├── WxCpTpCorp.java │ │ ├── WxCpTpCorpId2OpenCorpId.java │ │ ├── WxCpTpDepart.java │ │ ├── WxCpTpOpenKfIdConvertResult.java │ │ ├── WxCpTpPermanentCodeInfo.java │ │ ├── WxCpTpPreauthCode.java │ │ ├── WxCpTpProlongTryResult.java │ │ ├── WxCpTpTag.java │ │ ├── WxCpTpTagAddOrRemoveUsersResult.java │ │ ├── WxCpTpTagGetResult.java │ │ ├── WxCpTpTagIdListConvertResult.java │ │ ├── WxCpTpUnionidToExternalUseridResult.java │ │ ├── WxCpTpUserDetail.java │ │ ├── WxCpTpUserInfo.java │ │ ├── WxCpTpXmlPackage.java │ │ ├── WxCpUser.java │ │ ├── WxCpUserDetail.java │ │ ├── WxCpUserExternalContactInfo.java │ │ ├── WxCpUseridToOpenUserid.java │ │ ├── WxCpUseridToOpenUseridResult.java │ │ ├── WxTpCustomizedAuthUrl.java │ │ ├── WxTpLoginInfo.java │ │ ├── article │ │ │ ├── MpnewsArticle.java │ │ │ └── NewArticle.java │ │ ├── corpgroup │ │ │ ├── WxCpCorpGroupCorp.java │ │ │ ├── WxCpCorpGroupCorpGetTokenReq.java │ │ │ ├── WxCpCorpGroupCorpListAppShareInfoResp.java │ │ │ ├── WxCpCorpGroupCorpToken.java │ │ │ └── WxCpMaTransferSession.java │ │ ├── export │ │ │ ├── WxCpExportRequest.java │ │ │ └── WxCpExportResult.java │ │ ├── external │ │ │ ├── WxCpAddMomentResult.java │ │ │ ├── WxCpAddMomentTask.java │ │ │ ├── WxCpContactWayInfo.java │ │ │ ├── WxCpContactWayList.java │ │ │ ├── WxCpContactWayResult.java │ │ │ ├── WxCpExternalUserIdList.java │ │ │ ├── WxCpGetMomentComments.java │ │ │ ├── WxCpGetMomentCustomerList.java │ │ │ ├── WxCpGetMomentList.java │ │ │ ├── WxCpGetMomentSendResult.java │ │ │ ├── WxCpGetMomentTask.java │ │ │ ├── WxCpGetMomentTaskResult.java │ │ │ ├── WxCpGroupJoinWayInfo.java │ │ │ ├── WxCpGroupJoinWayResult.java │ │ │ ├── WxCpGroupWelcomeTemplateResult.java │ │ │ ├── WxCpMsgTemplate.java │ │ │ ├── WxCpMsgTemplateAddResult.java │ │ │ ├── WxCpNewExternalUserIdList.java │ │ │ ├── WxCpProductAlbumInfo.java │ │ │ ├── WxCpProductAlbumListResult.java │ │ │ ├── WxCpProductAlbumResult.java │ │ │ ├── WxCpUpdateRemarkRequest.java │ │ │ ├── WxCpUserExternalContactList.java │ │ │ ├── WxCpUserExternalGroupChatInfo.java │ │ │ ├── WxCpUserExternalGroupChatList.java │ │ │ ├── WxCpUserExternalGroupChatStatistic.java │ │ │ ├── WxCpUserExternalGroupChatTransferResp.java │ │ │ ├── WxCpUserExternalTagGroupInfo.java │ │ │ ├── WxCpUserExternalTagGroupList.java │ │ │ ├── WxCpUserExternalUnassignList.java │ │ │ ├── WxCpUserExternalUserBehaviorStatistic.java │ │ │ ├── WxCpUserTransferCustomerReq.java │ │ │ ├── WxCpUserTransferCustomerResp.java │ │ │ ├── WxCpUserTransferResultResp.java │ │ │ ├── WxCpUserWithExternalPermission.java │ │ │ ├── WxCpWelcomeMsg.java │ │ │ ├── acquisition │ │ │ │ ├── WxCpCustomerAcquisitionCreateResult.java │ │ │ │ ├── WxCpCustomerAcquisitionCustomerList.java │ │ │ │ ├── WxCpCustomerAcquisitionInfo.java │ │ │ │ ├── WxCpCustomerAcquisitionList.java │ │ │ │ ├── WxCpCustomerAcquisitionQuota.java │ │ │ │ ├── WxCpCustomerAcquisitionRequest.java │ │ │ │ └── WxCpCustomerAcquisitionStatistic.java │ │ │ ├── contact │ │ │ │ ├── ExternalContact.java │ │ │ │ ├── FollowedUser.java │ │ │ │ ├── WxCpExternalContactBatchInfo.java │ │ │ │ ├── WxCpExternalContactInfo.java │ │ │ │ ├── WxCpExternalContactListInfo.java │ │ │ │ ├── WxCpGroupMsgListResult.java │ │ │ │ ├── WxCpGroupMsgResult.java │ │ │ │ ├── WxCpGroupMsgSendResult.java │ │ │ │ └── WxCpGroupMsgTaskResult.java │ │ │ ├── interceptrule │ │ │ │ ├── ApplicableRange.java │ │ │ │ ├── WxCpInterceptRule.java │ │ │ │ ├── WxCpInterceptRuleAddRequest.java │ │ │ │ ├── WxCpInterceptRuleAddResult.java │ │ │ │ ├── WxCpInterceptRuleInfo.java │ │ │ │ └── WxCpInterceptRuleList.java │ │ │ ├── moment │ │ │ │ ├── CustomerItem.java │ │ │ │ ├── ExternalContactList.java │ │ │ │ ├── MomentInfo.java │ │ │ │ ├── SenderList.java │ │ │ │ └── VisibleRange.java │ │ │ ├── msg │ │ │ │ ├── Attachment.java │ │ │ │ ├── AttachmentBuilder.java │ │ │ │ ├── File.java │ │ │ │ ├── Image.java │ │ │ │ ├── Link.java │ │ │ │ ├── Location.java │ │ │ │ ├── MiniProgram.java │ │ │ │ ├── Text.java │ │ │ │ └── Video.java │ │ │ └── product │ │ │ │ ├── Attachment.java │ │ │ │ └── Image.java │ │ ├── kf │ │ │ ├── WxCpKfAccountAdd.java │ │ │ ├── WxCpKfAccountAddResp.java │ │ │ ├── WxCpKfAccountDel.java │ │ │ ├── WxCpKfAccountLink.java │ │ │ ├── WxCpKfAccountLinkResp.java │ │ │ ├── WxCpKfAccountListResp.java │ │ │ ├── WxCpKfAccountUpd.java │ │ │ ├── WxCpKfCustomerBatchGetResp.java │ │ │ ├── WxCpKfGetCorpStatisticRequest.java │ │ │ ├── WxCpKfGetCorpStatisticResp.java │ │ │ ├── WxCpKfGetServicerStatisticRequest.java │ │ │ ├── WxCpKfGetServicerStatisticResp.java │ │ │ ├── WxCpKfMsgListResp.java │ │ │ ├── WxCpKfMsgSendRequest.java │ │ │ ├── WxCpKfMsgSendResp.java │ │ │ ├── WxCpKfServiceStateResp.java │ │ │ ├── WxCpKfServiceStateTransResp.java │ │ │ ├── WxCpKfServiceUpgradeConfigResp.java │ │ │ ├── WxCpKfServicerListResp.java │ │ │ ├── WxCpKfServicerOpResp.java │ │ │ └── msg │ │ │ │ ├── WxCpKfBusinessCardMsg.java │ │ │ │ ├── WxCpKfChannelsShopOrderMsg.java │ │ │ │ ├── WxCpKfChannelsShopProductMsg.java │ │ │ │ ├── WxCpKfEventMsg.java │ │ │ │ ├── WxCpKfLinkMsg.java │ │ │ │ ├── WxCpKfLocationMsg.java │ │ │ │ ├── WxCpKfMenuMsg.java │ │ │ │ ├── WxCpKfMiniProgramMsg.java │ │ │ │ ├── WxCpKfResourceMsg.java │ │ │ │ └── WxCpKfTextMsg.java │ │ ├── license │ │ │ ├── WxCpTpLicenseAccount.java │ │ │ ├── WxCpTpLicenseAccountCount.java │ │ │ ├── WxCpTpLicenseAccountDuration.java │ │ │ ├── WxCpTpLicenseActiveAccount.java │ │ │ ├── WxCpTpLicenseActiveCodeInfo.java │ │ │ ├── WxCpTpLicenseBaseAccount.java │ │ │ ├── WxCpTpLicenseCorpAccount.java │ │ │ ├── WxCpTpLicenseInvalidAccount.java │ │ │ ├── WxCpTpLicenseOrder.java │ │ │ ├── WxCpTpLicenseSimpleOrder.java │ │ │ ├── WxCpTpLicenseTransfer.java │ │ │ ├── account │ │ │ │ ├── WxCpTpLicenseActiveInfoByUserResp.java │ │ │ │ ├── WxCpTpLicenseBatchActiveResultResp.java │ │ │ │ ├── WxCpTpLicenseBatchCodeInfoResp.java │ │ │ │ ├── WxCpTpLicenseBatchTransferResp.java │ │ │ │ ├── WxCpTpLicenseCodeInfoResp.java │ │ │ │ └── WxCpTpLicenseCorpAccountListResp.java │ │ │ └── order │ │ │ │ ├── WxCpTpLicenseCreateOrderResp.java │ │ │ │ ├── WxCpTpLicenseNewOrderRequest.java │ │ │ │ ├── WxCpTpLicenseOrderAccountListResp.java │ │ │ │ ├── WxCpTpLicenseOrderInfoResp.java │ │ │ │ ├── WxCpTpLicenseOrderListResp.java │ │ │ │ ├── WxCpTpLicenseRenewOrderJobRequest.java │ │ │ │ ├── WxCpTpLicenseRenewOrderJobResp.java │ │ │ │ └── WxCpTpLicenseRenewOrderRequest.java │ │ ├── linkedcorp │ │ │ ├── WxCpLinkedCorpAgentPerm.java │ │ │ ├── WxCpLinkedCorpDepartment.java │ │ │ └── WxCpLinkedCorpUser.java │ │ ├── living │ │ │ ├── WxCpLivingCreateRequest.java │ │ │ ├── WxCpLivingInfo.java │ │ │ ├── WxCpLivingModifyRequest.java │ │ │ ├── WxCpLivingResult.java │ │ │ ├── WxCpLivingShareInfo.java │ │ │ └── WxCpWatchStat.java │ │ ├── media │ │ │ ├── MediaUploadByUrlReq.java │ │ │ └── MediaUploadByUrlResult.java │ │ ├── message │ │ │ ├── TemplateCardMessage.java │ │ │ ├── WxCpAppChatMessage.java │ │ │ ├── WxCpGroupRobotMessage.java │ │ │ ├── WxCpLinkedCorpMessage.java │ │ │ ├── WxCpLinkedCorpMessageSendResult.java │ │ │ ├── WxCpMessage.java │ │ │ ├── WxCpMessageSendResult.java │ │ │ ├── WxCpMessageSendStatistics.java │ │ │ ├── WxCpSchoolContactMessage.java │ │ │ ├── WxCpSchoolContactMessageSendResult.java │ │ │ ├── WxCpTpXmlMessage.java │ │ │ ├── WxCpXmlApprovalInfo.java │ │ │ ├── WxCpXmlMessage.java │ │ │ ├── WxCpXmlOutEventMessage.java │ │ │ ├── WxCpXmlOutImageMessage.java │ │ │ ├── WxCpXmlOutMessage.java │ │ │ ├── WxCpXmlOutNewsMessage.java │ │ │ ├── WxCpXmlOutTaskCardMessage.java │ │ │ ├── WxCpXmlOutTextMessage.java │ │ │ ├── WxCpXmlOutUpdateBtnMessage.java │ │ │ ├── WxCpXmlOutVideoMessage.java │ │ │ └── WxCpXmlOutVoiceMessage.java │ │ ├── messagebuilder │ │ │ ├── BaseBuilder.java │ │ │ ├── FileBuilder.java │ │ │ ├── ImageBuilder.java │ │ │ ├── MarkdownMsgBuilder.java │ │ │ ├── MiniProgramNoticeMsgBuilder.java │ │ │ ├── MpnewsBuilder.java │ │ │ ├── NewsBuilder.java │ │ │ ├── TaskCardBuilder.java │ │ │ ├── TemplateCardBuilder.java │ │ │ ├── TextBuilder.java │ │ │ ├── TextCardBuilder.java │ │ │ ├── VideoBuilder.java │ │ │ └── VoiceBuilder.java │ │ ├── msgaudit │ │ │ ├── WxCpAgreeInfo.java │ │ │ ├── WxCpChatDatas.java │ │ │ ├── WxCpChatModel.java │ │ │ ├── WxCpCheckAgreeRequest.java │ │ │ ├── WxCpFileItem.java │ │ │ └── WxCpGroupChat.java │ │ ├── oa │ │ │ ├── SummaryInfo.java │ │ │ ├── WxCpApprovalApplier.java │ │ │ ├── WxCpApprovalApplyData.java │ │ │ ├── WxCpApprovalComment.java │ │ │ ├── WxCpApprovalDetailResult.java │ │ │ ├── WxCpApprovalInfo.java │ │ │ ├── WxCpApprovalInfoQueryFilter.java │ │ │ ├── WxCpApprovalRecord.java │ │ │ ├── WxCpApprovalRecordDetail.java │ │ │ ├── WxCpApproverAttr.java │ │ │ ├── WxCpCheckinData.java │ │ │ ├── WxCpCheckinDayData.java │ │ │ ├── WxCpCheckinGroupBase.java │ │ │ ├── WxCpCheckinMonthData.java │ │ │ ├── WxCpCheckinOption.java │ │ │ ├── WxCpCheckinSchedule.java │ │ │ ├── WxCpCorpConfInfo.java │ │ │ ├── WxCpCropCheckinOption.java │ │ │ ├── WxCpDialRecord.java │ │ │ ├── WxCpGetApprovalData.java │ │ │ ├── WxCpOaApplyEventRequest.java │ │ │ ├── WxCpOaApprovalTemplate.java │ │ │ ├── WxCpOaApprovalTemplateResult.java │ │ │ ├── WxCpOaSchedule.java │ │ │ ├── WxCpOperator.java │ │ │ ├── WxCpRecordSpStatus.java │ │ │ ├── WxCpSetCheckinSchedule.java │ │ │ ├── WxCpSpStatus.java │ │ │ ├── WxCpUserVacationQuota.java │ │ │ ├── applydata │ │ │ │ ├── ApplyDataContent.java │ │ │ │ ├── ContentTitle.java │ │ │ │ └── ContentValue.java │ │ │ ├── calendar │ │ │ │ └── WxCpOaCalendar.java │ │ │ ├── doc │ │ │ │ ├── WxCpDocCreateData.java │ │ │ │ ├── WxCpDocCreateRequest.java │ │ │ │ ├── WxCpDocInfo.java │ │ │ │ ├── WxCpDocRenameRequest.java │ │ │ │ └── WxCpDocShare.java │ │ │ ├── mail │ │ │ │ ├── WxCpMailCommonSendRequest.java │ │ │ │ ├── WxCpMailMeetingSendRequest.java │ │ │ │ └── WxCpMailScheduleSendRequest.java │ │ │ ├── meeting │ │ │ │ ├── WxCpMeeting.java │ │ │ │ ├── WxCpMeetingUpdateResult.java │ │ │ │ └── WxCpUserMeetingIdResult.java │ │ │ ├── meetingroom │ │ │ │ ├── WxCpOaMeetingRoom.java │ │ │ │ ├── WxCpOaMeetingRoomBookByMeetingRequest.java │ │ │ │ ├── WxCpOaMeetingRoomBookByScheduleRequest.java │ │ │ │ ├── WxCpOaMeetingRoomBookRequest.java │ │ │ │ ├── WxCpOaMeetingRoomBookResult.java │ │ │ │ ├── WxCpOaMeetingRoomBookingInfoByBookingIdRequest.java │ │ │ │ ├── WxCpOaMeetingRoomBookingInfoByBookingIdResult.java │ │ │ │ ├── WxCpOaMeetingRoomBookingInfoRequest.java │ │ │ │ ├── WxCpOaMeetingRoomBookingInfoResult.java │ │ │ │ └── WxCpOaMeetingRoomCancelBookRequest.java │ │ │ ├── selfagent │ │ │ │ └── WxCpOpenApprovalData.java │ │ │ ├── templatedata │ │ │ │ ├── TemplateConfig.java │ │ │ │ ├── TemplateContent.java │ │ │ │ ├── TemplateControls.java │ │ │ │ ├── TemplateDateRange.java │ │ │ │ ├── TemplateLocation.java │ │ │ │ ├── TemplateOptions.java │ │ │ │ ├── TemplateProperty.java │ │ │ │ ├── TemplateTips.java │ │ │ │ ├── TemplateTipsContent.java │ │ │ │ ├── TemplateTipsSubText.java │ │ │ │ ├── TemplateTipsSubTextContent.java │ │ │ │ ├── TemplateTipsSubTextContentLink.java │ │ │ │ ├── TemplateTipsSubTextContentPlainText.java │ │ │ │ ├── TemplateTipsText.java │ │ │ │ ├── TemplateTitle.java │ │ │ │ ├── TemplateVacationItem.java │ │ │ │ └── control │ │ │ │ │ ├── TemplateAttendance.java │ │ │ │ │ ├── TemplateContact.java │ │ │ │ │ ├── TemplateDate.java │ │ │ │ │ ├── TemplateSelector.java │ │ │ │ │ ├── TemplateTable.java │ │ │ │ │ └── TemplateVacation.java │ │ │ └── wedrive │ │ │ │ ├── WxCpFileAclAddRequest.java │ │ │ │ ├── WxCpFileAclDelRequest.java │ │ │ │ ├── WxCpFileCreate.java │ │ │ │ ├── WxCpFileDeleteRequest.java │ │ │ │ ├── WxCpFileDownload.java │ │ │ │ ├── WxCpFileInfo.java │ │ │ │ ├── WxCpFileList.java │ │ │ │ ├── WxCpFileListRequest.java │ │ │ │ ├── WxCpFileMove.java │ │ │ │ ├── WxCpFileMoveRequest.java │ │ │ │ ├── WxCpFileRename.java │ │ │ │ ├── WxCpFileShare.java │ │ │ │ ├── WxCpFileUpload.java │ │ │ │ ├── WxCpFileUploadRequest.java │ │ │ │ ├── WxCpSpaceAclAddRequest.java │ │ │ │ ├── WxCpSpaceAclDelRequest.java │ │ │ │ ├── WxCpSpaceCreateData.java │ │ │ │ ├── WxCpSpaceCreateRequest.java │ │ │ │ ├── WxCpSpaceInfo.java │ │ │ │ ├── WxCpSpaceRenameRequest.java │ │ │ │ ├── WxCpSpaceSettingRequest.java │ │ │ │ └── WxCpSpaceShare.java │ │ ├── order │ │ │ ├── WxCpTpOrderDetails.java │ │ │ └── WxCpTpOrderListGetResult.java │ │ ├── outxmlbuilder │ │ │ ├── BaseBuilder.java │ │ │ ├── EventBuilder.java │ │ │ ├── ImageBuilder.java │ │ │ ├── NewsBuilder.java │ │ │ ├── TaskCardBuilder.java │ │ │ ├── TextBuilder.java │ │ │ ├── UpdateButtonBuilder.java │ │ │ ├── VideoBuilder.java │ │ │ └── VoiceBuilder.java │ │ ├── school │ │ │ ├── WxCpCustomizeHealthInfo.java │ │ │ ├── WxCpPaymentResult.java │ │ │ ├── WxCpResultList.java │ │ │ ├── WxCpSchoolLivingInfo.java │ │ │ ├── WxCpSchoolUnwatchStat.java │ │ │ ├── WxCpSchoolWatchStat.java │ │ │ ├── WxCpTrade.java │ │ │ ├── health │ │ │ │ ├── WxCpGetHealthReportStat.java │ │ │ │ ├── WxCpGetReportAnswer.java │ │ │ │ ├── WxCpGetReportJobIds.java │ │ │ │ └── WxCpGetReportJobInfo.java │ │ │ └── user │ │ │ │ ├── WxCpAllowScope.java │ │ │ │ ├── WxCpBatchCreateParentRequest.java │ │ │ │ ├── WxCpBatchCreateStudentRequest.java │ │ │ │ ├── WxCpBatchDeleteStudentRequest.java │ │ │ │ ├── WxCpBatchResultList.java │ │ │ │ ├── WxCpBatchUpdateParentRequest.java │ │ │ │ ├── WxCpBatchUpdateStudentRequest.java │ │ │ │ ├── WxCpCreateDepartment.java │ │ │ │ ├── WxCpCreateDepartmentRequest.java │ │ │ │ ├── WxCpCreateParentRequest.java │ │ │ │ ├── WxCpDepartmentList.java │ │ │ │ ├── WxCpExternalContact.java │ │ │ │ ├── WxCpListParentResult.java │ │ │ │ ├── WxCpSetUpgradeInfo.java │ │ │ │ ├── WxCpSubscribeQrCode.java │ │ │ │ ├── WxCpUpdateDepartmentRequest.java │ │ │ │ ├── WxCpUpdateParentRequest.java │ │ │ │ ├── WxCpUserListResult.java │ │ │ │ └── WxCpUserResult.java │ │ ├── taskcard │ │ │ └── TaskCardButton.java │ │ ├── templatecard │ │ │ ├── ActionMenuItem.java │ │ │ ├── CheckboxOption.java │ │ │ ├── HorizontalContent.java │ │ │ ├── MultipleSelect.java │ │ │ ├── QuoteArea.java │ │ │ ├── TemplateCardButton.java │ │ │ ├── TemplateCardButtonSelection.java │ │ │ ├── TemplateCardButtonSelectionOption.java │ │ │ ├── TemplateCardImageTextArea.java │ │ │ ├── TemplateCardJump.java │ │ │ └── VerticalContent.java │ │ ├── user │ │ │ └── WxCpDeptUserResult.java │ │ └── workbench │ │ │ ├── WorkBenchKeyData.java │ │ │ ├── WorkBenchList.java │ │ │ └── WxCpSecondVerificationInfo.java │ │ ├── config │ │ ├── WxCpConfigStorage.java │ │ ├── WxCpCorpGroupConfigStorage.java │ │ ├── WxCpTpConfigStorage.java │ │ └── impl │ │ │ ├── AbstractWxCpInRedisConfigImpl.java │ │ │ ├── WxCpCorpGroupDefaultConfigImpl.java │ │ │ ├── WxCpCorpGroupRedissonConfigImpl.java │ │ │ ├── WxCpDefaultConfigImpl.java │ │ │ ├── WxCpJedisConfigImpl.java │ │ │ ├── WxCpRedisConfigImpl.java │ │ │ ├── WxCpRedisTemplateConfigImpl.java │ │ │ ├── WxCpRedissonConfigImpl.java │ │ │ ├── WxCpTpDefaultConfigImpl.java │ │ │ └── WxCpTpRedissonConfigImpl.java │ │ ├── constant │ │ ├── WxCpApiPathConsts.java │ │ ├── WxCpConsts.java │ │ └── WxCpTpConsts.java │ │ ├── corpgroup │ │ └── service │ │ │ ├── WxCpCgService.java │ │ │ ├── WxCpLinkedCorpService.java │ │ │ └── impl │ │ │ ├── BaseWxCpCgServiceImpl.java │ │ │ ├── WxCpCgServiceApacheHttpClientImpl.java │ │ │ ├── WxCpCgServiceHttpComponentsImpl.java │ │ │ └── WxCpLinkedCorpServiceImpl.java │ │ ├── message │ │ ├── WxCpMessageHandler.java │ │ ├── WxCpMessageInterceptor.java │ │ ├── WxCpMessageMatcher.java │ │ ├── WxCpMessageRouter.java │ │ └── WxCpMessageRouterRule.java │ │ ├── tp │ │ ├── message │ │ │ ├── WxCpTpMessageHandler.java │ │ │ ├── WxCpTpMessageInterceptor.java │ │ │ ├── WxCpTpMessageMatcher.java │ │ │ ├── WxCpTpMessageRouter.java │ │ │ └── WxCpTpMessageRouterRule.java │ │ └── service │ │ │ ├── WxCpTpContactService.java │ │ │ ├── WxCpTpDepartmentService.java │ │ │ ├── WxCpTpEditionService.java │ │ │ ├── WxCpTpIdConvertService.java │ │ │ ├── WxCpTpLicenseService.java │ │ │ ├── WxCpTpMediaService.java │ │ │ ├── WxCpTpOAService.java │ │ │ ├── WxCpTpOAuth2Service.java │ │ │ ├── WxCpTpOrderService.java │ │ │ ├── WxCpTpService.java │ │ │ ├── WxCpTpTagService.java │ │ │ ├── WxCpTpUserService.java │ │ │ └── impl │ │ │ ├── BaseWxCpTpServiceImpl.java │ │ │ ├── WxCpTpContactServiceImpl.java │ │ │ ├── WxCpTpDepartmentServiceImpl.java │ │ │ ├── WxCpTpEditionServiceImpl.java │ │ │ ├── WxCpTpIdConvertServiceImpl.java │ │ │ ├── WxCpTpLicenseServiceImpl.java │ │ │ ├── WxCpTpMediaServiceImpl.java │ │ │ ├── WxCpTpOAServiceImpl.java │ │ │ ├── WxCpTpOAuth2ServiceImpl.java │ │ │ ├── WxCpTpOrderServiceImpl.java │ │ │ ├── WxCpTpServiceApacheHttpClientImpl.java │ │ │ ├── WxCpTpServiceHttpComponentsImpl.java │ │ │ ├── WxCpTpServiceImpl.java │ │ │ ├── WxCpTpTagServiceImpl.java │ │ │ └── WxCpTpUserServiceImpl.java │ │ └── util │ │ ├── crypto │ │ ├── WxCpCryptUtil.java │ │ └── WxCpTpCryptUtil.java │ │ ├── json │ │ ├── StatisticListAdapter.java │ │ ├── WxCpChatGsonAdapter.java │ │ ├── WxCpConclusionAdapter.java │ │ ├── WxCpDepartGsonAdapter.java │ │ ├── WxCpGsonBuilder.java │ │ ├── WxCpMenuGsonAdapter.java │ │ ├── WxCpTagGsonAdapter.java │ │ └── WxCpUserGsonAdapter.java │ │ └── xml │ │ └── XStreamTransformer.java │ └── test │ ├── java │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── cp │ │ ├── api │ │ ├── ApiTestModule.java │ │ ├── ApiTestModuleWithMockServer.java │ │ ├── TestConstants.java │ │ ├── WxCpBaseAPITest.java │ │ ├── WxCpBusyRetryTest.java │ │ ├── WxCpExternalContactTest.java │ │ ├── WxCpLivingTest.java │ │ ├── WxCpMessageRouterTest.java │ │ ├── WxCpMsgAuditTest.java │ │ ├── WxCpOaAgentTest.java │ │ ├── WxCpOaWeDriveServiceTest.java │ │ ├── WxCpSchoolHealthTest.java │ │ ├── WxCpSchoolTest.java │ │ ├── WxCpSchoolUserTest.java │ │ ├── WxCpTpMessageRouterTest.java │ │ └── impl │ │ │ ├── BaseWxCpServiceImplTest.java │ │ │ ├── WxCpAgentServiceImplTest.java │ │ │ ├── WxCpAgentWorkBenchImplTest.java │ │ │ ├── WxCpChatServiceImplTest.java │ │ │ ├── WxCpCorpGroupServiceImplTest.java │ │ │ ├── WxCpDepartmentServiceImplTest.java │ │ │ ├── WxCpExternalContactServiceImplTest.java │ │ │ ├── WxCpGroupRobotServiceImplTest.java │ │ │ ├── WxCpKfServiceImplTest.java │ │ │ ├── WxCpMediaServiceImplTest.java │ │ │ ├── WxCpMeetingServiceImplTest.java │ │ │ ├── WxCpMenuServiceImplTest.java │ │ │ ├── WxCpMessageServiceImplTest.java │ │ │ ├── WxCpOAuth2ServiceImplTest.java │ │ │ ├── WxCpOaCalendarServiceImplTest.java │ │ │ ├── WxCpOaMeetingRoomServiceImplTest.java │ │ │ ├── WxCpOaScheduleServiceImplTest.java │ │ │ ├── WxCpOaServiceImplTest.java │ │ │ ├── WxCpSchoolUserServiceImplTest.java │ │ │ ├── WxCpTagServiceImplTest.java │ │ │ ├── WxCpTaskCardServiceImplTest.java │ │ │ └── WxCpUserServiceImplTest.java │ │ ├── bean │ │ ├── WxCpAgentTest.java │ │ ├── WxCpTpXmlPackageTest.java │ │ ├── external │ │ │ ├── WxCpUpdateRemarkRequestTest.java │ │ │ ├── WxCpUserExternalContactInfoTest.java │ │ │ └── contact │ │ │ │ └── WxCpGroupMsgResultTest.java │ │ ├── message │ │ │ ├── TemplateCardMessageTest.java │ │ │ ├── WxCpLinkedCorpMessageTest.java │ │ │ ├── WxCpMessageTest.java │ │ │ ├── WxCpSchoolContactMessageTest.java │ │ │ ├── WxCpTpXmlMessageTest.java │ │ │ ├── WxCpXmlMessageTest.java │ │ │ ├── WxCpXmlOutImageMessageTest.java │ │ │ ├── WxCpXmlOutNewsMessageTest.java │ │ │ ├── WxCpXmlOutTaskCardMessageTest.java │ │ │ ├── WxCpXmlOutTextMessageTest.java │ │ │ ├── WxCpXmlOutVideoMessageTest.java │ │ │ └── WxCpXmlOutVoiceMessageTest.java │ │ └── oa │ │ │ ├── WxCpOaApplyEventRequestTest.java │ │ │ └── calendar │ │ │ └── WxCpOaCalendarTest.java │ │ ├── config │ │ └── impl │ │ │ └── WxCpTpDefaultConfigImplTest.java │ │ ├── corpgroup │ │ └── service │ │ │ └── impl │ │ │ ├── WxCpCgServiceApacheHttpClientImplTest.java │ │ │ └── WxCpLinkedCorpServiceImplTest.java │ │ ├── demo │ │ ├── WxCpDemoInMemoryConfigStorage.java │ │ ├── WxCpDemoServer.java │ │ ├── WxCpEndpointServlet.java │ │ └── WxCpOAuth2Servlet.java │ │ ├── tp │ │ └── service │ │ │ └── impl │ │ │ ├── BaseWxCpTpServiceImplTest.java │ │ │ ├── WxCpTpEditionServiceImplTest.java │ │ │ ├── WxCpTpLicenseServiceImplTest.java │ │ │ ├── WxCpTpOrderServiceImplTest.java │ │ │ ├── WxCpTpServiceApacheHttpClientImplTest.java │ │ │ └── WxCpTpTagServiceImplTest.java │ │ └── util │ │ ├── crypto │ │ └── WxCpCryptUtilTest.java │ │ └── json │ │ ├── WxCpUserGsonAdapterForPrivatizedVersionTest.java │ │ └── WxCpUserGsonAdapterTest.java │ └── resources │ ├── logback-test.xml │ ├── mm.amr │ ├── mm.jpeg │ ├── mm.mp3 │ ├── mm.mp4 │ ├── moco │ └── message.json │ ├── test-config.sample.xml │ └── testng.xml ├── weixin-java-miniapp ├── api-signature-readme.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── cn │ │ └── binarywang │ │ └── wx │ │ └── miniapp │ │ ├── api │ │ ├── WxMaAnalysisService.java │ │ ├── WxMaCloudService.java │ │ ├── WxMaCodeService.java │ │ ├── WxMaDeviceSubscribeService.java │ │ ├── WxMaExpressDeliveryReturnService.java │ │ ├── WxMaExpressService.java │ │ ├── WxMaImmediateDeliveryService.java │ │ ├── WxMaInternetService.java │ │ ├── WxMaIntracityService.java │ │ ├── WxMaJsapiService.java │ │ ├── WxMaLinkService.java │ │ ├── WxMaLiveGoodsService.java │ │ ├── WxMaLiveMemberService.java │ │ ├── WxMaLiveService.java │ │ ├── WxMaMarketingService.java │ │ ├── WxMaMediaService.java │ │ ├── WxMaMsgService.java │ │ ├── WxMaOpenApiService.java │ │ ├── WxMaOrderManagementService.java │ │ ├── WxMaOrderShippingService.java │ │ ├── WxMaPluginService.java │ │ ├── WxMaProductOrderService.java │ │ ├── WxMaProductService.java │ │ ├── WxMaPromotionService.java │ │ ├── WxMaQrcodeService.java │ │ ├── WxMaReimburseInvoiceService.java │ │ ├── WxMaRunService.java │ │ ├── WxMaSchemeService.java │ │ ├── WxMaSecurityService.java │ │ ├── WxMaService.java │ │ ├── WxMaSettingService.java │ │ ├── WxMaShareService.java │ │ ├── WxMaShopAccountService.java │ │ ├── WxMaShopAfterSaleService.java │ │ ├── WxMaShopAuditService.java │ │ ├── WxMaShopCatService.java │ │ ├── WxMaShopCouponService.java │ │ ├── WxMaShopDeliveryService.java │ │ ├── WxMaShopImgService.java │ │ ├── WxMaShopOrderService.java │ │ ├── WxMaShopPayService.java │ │ ├── WxMaShopRegisterService.java │ │ ├── WxMaShopSharerService.java │ │ ├── WxMaShopSpuService.java │ │ ├── WxMaSubscribeService.java │ │ ├── WxMaUserService.java │ │ ├── WxMaVodService.java │ │ ├── WxMaXPayService.java │ │ └── impl │ │ │ ├── BaseWxMaServiceImpl.java │ │ │ ├── WxMaAnalysisServiceImpl.java │ │ │ ├── WxMaCloudServiceImpl.java │ │ │ ├── WxMaCodeServiceImpl.java │ │ │ ├── WxMaDeviceSubscribeServiceImpl.java │ │ │ ├── WxMaExpressDeliveryReturnServiceImpl.java │ │ │ ├── WxMaExpressServiceImpl.java │ │ │ ├── WxMaImgProcServiceImpl.java │ │ │ ├── WxMaImmediateDeliveryServiceImpl.java │ │ │ ├── WxMaInternetServiceImpl.java │ │ │ ├── WxMaIntracityServiceImpl.java │ │ │ ├── WxMaJsapiServiceImpl.java │ │ │ ├── WxMaLinkServiceImpl.java │ │ │ ├── WxMaLiveGoodsServiceImpl.java │ │ │ ├── WxMaLiveMemberServiceImpl.java │ │ │ ├── WxMaLiveServiceImpl.java │ │ │ ├── WxMaMarketingServiceImpl.java │ │ │ ├── WxMaMediaServiceImpl.java │ │ │ ├── WxMaMsgServiceImpl.java │ │ │ ├── WxMaOcrServiceImpl.java │ │ │ ├── WxMaOpenApiServiceImpl.java │ │ │ ├── WxMaOrderManagementServiceImpl.java │ │ │ ├── WxMaOrderShippingServiceImpl.java │ │ │ ├── WxMaPluginServiceImpl.java │ │ │ ├── WxMaProductOrderServiceImpl.java │ │ │ ├── WxMaProductServiceImpl.java │ │ │ ├── WxMaPromotionServiceImpl.java │ │ │ ├── WxMaQrcodeServiceImpl.java │ │ │ ├── WxMaReimburseInvoiceServiceImpl.java │ │ │ ├── WxMaRunServiceImpl.java │ │ │ ├── WxMaSchemeServiceImpl.java │ │ │ ├── WxMaSecurityServiceImpl.java │ │ │ ├── WxMaServiceHttpClientImpl.java │ │ │ ├── WxMaServiceImpl.java │ │ │ ├── WxMaServiceJoddHttpImpl.java │ │ │ ├── WxMaServiceOkHttpImpl.java │ │ │ ├── WxMaSettingServiceImpl.java │ │ │ ├── WxMaShareServiceImpl.java │ │ │ ├── WxMaShopAccountServiceImpl.java │ │ │ ├── WxMaShopAfterSaleServiceImpl.java │ │ │ ├── WxMaShopAuditServiceImpl.java │ │ │ ├── WxMaShopCatServiceImpl.java │ │ │ ├── WxMaShopCouponServiceImpl.java │ │ │ ├── WxMaShopDeliveryServiceImpl.java │ │ │ ├── WxMaShopImgServiceImpl.java │ │ │ ├── WxMaShopOrderServiceImpl.java │ │ │ ├── WxMaShopPayServiceImpl.java │ │ │ ├── WxMaShopRegisterServiceImpl.java │ │ │ ├── WxMaShopSharerServiceImpl.java │ │ │ ├── WxMaShopSpuServiceImpl.java │ │ │ ├── WxMaSubscribeServiceImpl.java │ │ │ ├── WxMaUserServiceImpl.java │ │ │ ├── WxMaVodServiceImpl.java │ │ │ └── WxMaXPayServiceImpl.java │ │ ├── bean │ │ ├── AbstractWxMaQrcodeWrapper.java │ │ ├── Watermark.java │ │ ├── WxMaApiResponse.java │ │ ├── WxMaAuditMediaUploadResult.java │ │ ├── WxMaBaseResponse.java │ │ ├── WxMaCodeLineColor.java │ │ ├── WxMaDomainAction.java │ │ ├── WxMaJscode2SessionResult.java │ │ ├── WxMaKefuMessage.java │ │ ├── WxMaMediaAsyncCheckResult.java │ │ ├── WxMaMessage.java │ │ ├── WxMaPhoneNumberInfo.java │ │ ├── WxMaPluginListResult.java │ │ ├── WxMaQrcode.java │ │ ├── WxMaRunStepInfo.java │ │ ├── WxMaShareInfo.java │ │ ├── WxMaStableAccessTokenRequest.java │ │ ├── WxMaSubscribeMessage.java │ │ ├── WxMaSubscribeMsgEvent.java │ │ ├── WxMaTemplateData.java │ │ ├── WxMaUniformMessage.java │ │ ├── WxMaUpdatableMsg.java │ │ ├── WxMaUploadAuthMaterialResult.java │ │ ├── WxMaUserInfo.java │ │ ├── WxaCode.java │ │ ├── WxaCodeUnlimit.java │ │ ├── analysis │ │ │ ├── WxMaRetainInfo.java │ │ │ ├── WxMaSummaryTrend.java │ │ │ ├── WxMaUserPortrait.java │ │ │ ├── WxMaVisitDistribution.java │ │ │ ├── WxMaVisitPage.java │ │ │ ├── WxMaVisitTrend.java │ │ │ └── package-info.java │ │ ├── cloud │ │ │ ├── WxCloudBatchDeleteFileResult.java │ │ │ ├── WxCloudBatchDownloadFileResult.java │ │ │ ├── WxCloudCloudDatabaseMigrateQueryInfoResult.java │ │ │ ├── WxCloudDatabaseCollectionGetResult.java │ │ │ ├── WxCloudDatabaseCreateIndexRequest.java │ │ │ ├── WxCloudDatabaseQueryResult.java │ │ │ ├── WxCloudDatabaseUpdateResult.java │ │ │ ├── WxCloudGetQcloudTokenResult.java │ │ │ ├── WxCloudSendSmsV2Result.java │ │ │ ├── WxCloudUploadFileResult.java │ │ │ └── request │ │ │ │ └── WxCloudSendSmsV2Request.java │ │ ├── code │ │ │ ├── WxMaCodeAuditStatus.java │ │ │ ├── WxMaCodeCommitRequest.java │ │ │ ├── WxMaCodeExtConfig.java │ │ │ ├── WxMaCodeSubmitAuditItem.java │ │ │ ├── WxMaCodeSubmitAuditPreviewInfo.java │ │ │ ├── WxMaCodeSubmitAuditRequest.java │ │ │ ├── WxMaCodeSubmitAuditUgcDeclare.java │ │ │ ├── WxMaCodeVersionDistribution.java │ │ │ ├── WxMaCodeVersionInfo.java │ │ │ └── package-info.java │ │ ├── delivery │ │ │ ├── AbnormalConfirmRequest.java │ │ │ ├── AbnormalConfirmResponse.java │ │ │ ├── AddOrderRequest.java │ │ │ ├── AddOrderResponse.java │ │ │ ├── BindAccountResponse.java │ │ │ ├── CancelOrderRequest.java │ │ │ ├── CancelOrderResponse.java │ │ │ ├── FollowWaybillRequest.java │ │ │ ├── FollowWaybillResponse.java │ │ │ ├── GetDeliveryListResponse.java │ │ │ ├── GetOrderRequest.java │ │ │ ├── GetOrderResponse.java │ │ │ ├── MockUpdateOrderRequest.java │ │ │ ├── MockUpdateOrderResponse.java │ │ │ ├── QueryFollowTraceRequest.java │ │ │ ├── QueryFollowTraceResponse.java │ │ │ ├── QueryWaybillTraceRequest.java │ │ │ ├── QueryWaybillTraceResponse.java │ │ │ ├── TraceWaybillRequest.java │ │ │ ├── TraceWaybillResponse.java │ │ │ ├── UpdateWaybillGoodsRequest.java │ │ │ ├── WaybillGoodsInfo.java │ │ │ └── base │ │ │ │ ├── WxMaDeliveryBaseRequest.java │ │ │ │ └── WxMaDeliveryBaseResponse.java │ │ ├── device │ │ │ ├── WxMaDeviceSubscribeMessageRequest.java │ │ │ └── WxMaDeviceTicketRequest.java │ │ ├── express │ │ │ ├── WxMaExpressAccount.java │ │ │ ├── WxMaExpressDelivery.java │ │ │ ├── WxMaExpressPath.java │ │ │ ├── WxMaExpressPrinter.java │ │ │ ├── request │ │ │ │ ├── WxMaExpressAddOrderRequest.java │ │ │ │ ├── WxMaExpressBindAccountRequest.java │ │ │ │ ├── WxMaExpressDeliveryReturnAddRequest.java │ │ │ │ ├── WxMaExpressGetOrderRequest.java │ │ │ │ ├── WxMaExpressOrderCargo.java │ │ │ │ ├── WxMaExpressOrderCargoDetail.java │ │ │ │ ├── WxMaExpressOrderInsured.java │ │ │ │ ├── WxMaExpressOrderPerson.java │ │ │ │ ├── WxMaExpressOrderShop.java │ │ │ │ ├── WxMaExpressOrderShopDetail.java │ │ │ │ ├── WxMaExpressPrinterUpdateRequest.java │ │ │ │ ├── WxMaExpressReturnOrder.java │ │ │ │ └── WxMaExpressTestUpdateOrderRequest.java │ │ │ └── result │ │ │ │ ├── WxMaExpressInfoResult.java │ │ │ │ ├── WxMaExpressOrderInfoResult.java │ │ │ │ └── WxMaExpressReturnInfoResult.java │ │ ├── internet │ │ │ ├── WxMaInternetResponse.java │ │ │ └── WxMaInternetUserKeyInfo.java │ │ ├── intractiy │ │ │ ├── BasicWxMaOrder.java │ │ │ ├── BasicWxMaStoreChargeRefundRequest.java │ │ │ ├── PayMode.java │ │ │ ├── WxMaAddOrderRequest.java │ │ │ ├── WxMaAddOrderResponse.java │ │ │ ├── WxMaCancelOrderResponse.java │ │ │ ├── WxMaGetPayModeResponse.java │ │ │ ├── WxMaOrder.java │ │ │ ├── WxMaPreAddOrderRequest.java │ │ │ ├── WxMaPreAddOrderResponse.java │ │ │ ├── WxMaQueryFlowRequest.java │ │ │ ├── WxMaStore.java │ │ │ ├── WxMaStoreBalance.java │ │ │ ├── WxMaStoreChargeRequest.java │ │ │ ├── WxMaStoreFlowResponse.java │ │ │ ├── WxMaStoreRefundRequest.java │ │ │ └── WxMaTransCity.java │ │ ├── invoice │ │ │ └── reimburse │ │ │ │ ├── InvoiceBatchRequest.java │ │ │ │ ├── InvoiceCommodityInfo.java │ │ │ │ ├── InvoiceInfoRequest.java │ │ │ │ ├── InvoiceInfoResponse.java │ │ │ │ ├── InvoiceUserInfo.java │ │ │ │ ├── UpdateInvoiceStatusRequest.java │ │ │ │ └── UpdateStatusBatchRequest.java │ │ ├── live │ │ │ ├── WxMaAssistantResult.java │ │ │ ├── WxMaCreateRoomResult.java │ │ │ ├── WxMaLiveAssistantInfo.java │ │ │ ├── WxMaLiveGoodInfo.java │ │ │ ├── WxMaLiveResult.java │ │ │ ├── WxMaLiveRoomInfo.java │ │ │ └── WxMaLiveSharedCode.java │ │ ├── marketing │ │ │ └── WxMaUserAction.java │ │ ├── openapi │ │ │ ├── WxMiniGetApiQuotaResult.java │ │ │ └── WxMiniGetRidInfoResult.java │ │ ├── order │ │ │ ├── WxMaOrderManagementGetOrderDetailPath.java │ │ │ └── WxMaOrderManagementResult.java │ │ ├── product │ │ │ ├── MinishopShopCat.java │ │ │ ├── WxMiniAfterSaleDetail.java │ │ │ ├── WxMiniAfterSaleOrder.java │ │ │ ├── WxMiniBatchGetAfterSaleOrderResponse.java │ │ │ ├── WxMiniGetAfterSaleOrderResponse.java │ │ │ ├── WxMiniOrderAfterSaleDetail.java │ │ │ ├── WxMiniOrderDeliveryRequest.java │ │ │ ├── WxMinishopAddGoodsSkuData.java │ │ │ ├── WxMinishopAddGoodsSpuData.java │ │ │ ├── WxMinishopAddressInfo.java │ │ │ ├── WxMinishopDeliveryCompany.java │ │ │ ├── WxMinishopDeliveryInfo.java │ │ │ ├── WxMinishopGetBrandResponse.java │ │ │ ├── WxMinishopGetCategoryResponse.java │ │ │ ├── WxMinishopGetFrightTemplateResponse.java │ │ │ ├── WxMinishopGoodsSkuAttr.java │ │ │ ├── WxMinishopOrderDetail.java │ │ │ ├── WxMinishopOrderDetailResponse.java │ │ │ ├── WxMinishopOrderListResponse.java │ │ │ ├── WxMinishopOrderResult.java │ │ │ ├── WxMinishopPayInfo.java │ │ │ ├── WxMinishopPriceInfo.java │ │ │ ├── WxMinishopProductInfo.java │ │ │ ├── WxMinishopResult.java │ │ │ ├── WxMinishopSku.java │ │ │ ├── WxMinishopSkuListResponse.java │ │ │ ├── WxMinishopSpu.java │ │ │ ├── WxMinishopSpuGet.java │ │ │ ├── WxMinishopSpuGetResponse.java │ │ │ ├── WxMinishopSpuListResponse.java │ │ │ └── WxMinishopUpdateGoodsSkuData.java │ │ ├── promoter │ │ │ ├── request │ │ │ │ ├── WxMaPromoterUpdateRoleRequest.java │ │ │ │ ├── WxMaPromotionAddPromoterRequest.java │ │ │ │ ├── WxMaPromotionAddRoleRequest.java │ │ │ │ ├── WxMaPromotionGetInvitationMaterialRequest.java │ │ │ │ ├── WxMaPromotionGetMsgClickDataRequest.java │ │ │ │ ├── WxMaPromotionGetMsgRequest.java │ │ │ │ ├── WxMaPromotionGetOrderRequest.java │ │ │ │ ├── WxMaPromotionGetPromoterRequest.java │ │ │ │ ├── WxMaPromotionGetRelationRequest.java │ │ │ │ ├── WxMaPromotionGetRoleRequest.java │ │ │ │ ├── WxMaPromotionGetShareMaterialRequest.java │ │ │ │ ├── WxMaPromotionSendMsgRequest.java │ │ │ │ ├── WxMaPromotionSingleSendMsgRequest.java │ │ │ │ └── WxMaPromotionUpdatePromoterRequest.java │ │ │ └── response │ │ │ │ ├── WxMaPromotionAddPromoterResponse.java │ │ │ │ ├── WxMaPromotionAddRoleResponse.java │ │ │ │ ├── WxMaPromotionGetInvitationMaterialResponse.java │ │ │ │ ├── WxMaPromotionGetMsgClickDataResponse.java │ │ │ │ ├── WxMaPromotionGetMsgResponse.java │ │ │ │ ├── WxMaPromotionGetOrderResponse.java │ │ │ │ ├── WxMaPromotionGetPromoterResponse.java │ │ │ │ ├── WxMaPromotionGetRelationResponse.java │ │ │ │ ├── WxMaPromotionGetRoleResponse.java │ │ │ │ ├── WxMaPromotionGetShareMaterialResponse.java │ │ │ │ ├── WxMaPromotionSendMsgResponse.java │ │ │ │ ├── WxMaPromotionSingleSendMsgResponse.java │ │ │ │ ├── WxMaPromotionUpdatePromoterResponse.java │ │ │ │ └── WxMaPromotionUpdateRoleResponse.java │ │ ├── safety │ │ │ ├── request │ │ │ │ └── WxMaUserSafetyRiskRankRequest.java │ │ │ └── response │ │ │ │ └── WxMaUserSafetyRiskRankResponse.java │ │ ├── scheme │ │ │ ├── WxMaGenerateNfcSchemeRequest.java │ │ │ └── WxMaGenerateSchemeRequest.java │ │ ├── security │ │ │ ├── WxMaMediaSecCheckCheckRequest.java │ │ │ ├── WxMaMsgSecCheckCheckRequest.java │ │ │ └── WxMaMsgSecCheckCheckResponse.java │ │ ├── shop │ │ │ ├── WxMaPromotionInfo.java │ │ │ ├── WxMaShopAccountGetBrandListItem.java │ │ │ ├── WxMaShopAccountGetCategoryListItem.java │ │ │ ├── WxMaShopAccountGetInfo.java │ │ │ ├── WxMaShopAddOrderResult.java │ │ │ ├── WxMaShopAddSpuResult.java │ │ │ ├── WxMaShopAddressInfo.java │ │ │ ├── WxMaShopCatGetDetail.java │ │ │ ├── WxMaShopCouponInfo.java │ │ │ ├── WxMaShopDeliveryDetail.java │ │ │ ├── WxMaShopDeliveryItem.java │ │ │ ├── WxMaShopGetSpuResult.java │ │ │ ├── WxMaShopOrderDetail.java │ │ │ ├── WxMaShopOrderInfo.java │ │ │ ├── WxMaShopOrderResult.java │ │ │ ├── WxMaShopPayInfo.java │ │ │ ├── WxMaShopPriceInfo.java │ │ │ ├── WxMaShopProductInfo.java │ │ │ ├── WxMaShopPromotionInfo.java │ │ │ ├── WxMaShopSkuAttribute.java │ │ │ ├── WxMaShopSkuInfo.java │ │ │ ├── WxMaShopSkuResult.java │ │ │ ├── WxMaShopSkuWithoutAuditInfo.java │ │ │ ├── WxMaShopSpuAudit.java │ │ │ ├── WxMaShopSpuDescInfo.java │ │ │ ├── WxMaShopSpuInfo.java │ │ │ ├── WxMaShopSpuWithoutAuditInfo.java │ │ │ ├── request │ │ │ │ ├── WxMaOrderShippingIsTradeManagedRequest.java │ │ │ │ ├── WxMaShopAcceptReturnRequest.java │ │ │ │ ├── WxMaShopAccountUpdateInfoRequest.java │ │ │ │ ├── WxMaShopAfterSaleAddRequest.java │ │ │ │ ├── WxMaShopAfterSaleGetRequest.java │ │ │ │ ├── WxMaShopAfterSaleListRequest.java │ │ │ │ ├── WxMaShopAfterSaleUpdateRequest.java │ │ │ │ ├── WxMaShopAfterSaleUploadReturnInfoRequest.java │ │ │ │ ├── WxMaShopAuditBrandRequest.java │ │ │ │ ├── WxMaShopAuditCategoryRequest.java │ │ │ │ ├── WxMaShopDeliveryRecieveRequest.java │ │ │ │ ├── WxMaShopDeliverySendRequest.java │ │ │ │ ├── WxMaShopEcAfterSaleGetRequest.java │ │ │ │ ├── WxMaShopEcAfterSaleUpdateRequest.java │ │ │ │ ├── WxMaShopOrderPayRequest.java │ │ │ │ ├── WxMaShopPayCreateOrderRequest.java │ │ │ │ ├── WxMaShopPayOrderRefundRequest.java │ │ │ │ ├── WxMaShopRegisterApplySceneRequest.java │ │ │ │ ├── WxMaShopRegisterFinishAccessInfoRequest.java │ │ │ │ ├── WxMaShopSpuPageRequest.java │ │ │ │ ├── WxMaShopUploadCerficatesRequest.java │ │ │ │ └── shipping │ │ │ │ │ ├── ContactBean.java │ │ │ │ │ ├── OrderKeyBean.java │ │ │ │ │ ├── PayerBean.java │ │ │ │ │ ├── ShippingListBean.java │ │ │ │ │ ├── WxMaOrderCombinedShippingInfoUploadRequest.java │ │ │ │ │ ├── WxMaOrderShippingInfoGetListRequest.java │ │ │ │ │ ├── WxMaOrderShippingInfoGetRequest.java │ │ │ │ │ ├── WxMaOrderShippingInfoNotifyConfirmRequest.java │ │ │ │ │ └── WxMaOrderShippingInfoUploadRequest.java │ │ │ └── response │ │ │ │ ├── WxMaOrderShippingITMCCompletedResult.java │ │ │ │ ├── WxMaOrderShippingInfoBaseResponse.java │ │ │ │ ├── WxMaOrderShippingInfoGetListResponse.java │ │ │ │ ├── WxMaOrderShippingInfoGetResponse.java │ │ │ │ ├── WxMaOrderShippingIsTradeManagedResponse.java │ │ │ │ ├── WxMaShopAccountGetBrandListResponse.java │ │ │ │ ├── WxMaShopAccountGetCategoryListResponse.java │ │ │ │ ├── WxMaShopAccountGetInfoResponse.java │ │ │ │ ├── WxMaShopAddOrderResponse.java │ │ │ │ ├── WxMaShopAddSpuResponse.java │ │ │ │ ├── WxMaShopAfterSaleAddResponse.java │ │ │ │ ├── WxMaShopAfterSaleGetResponse.java │ │ │ │ ├── WxMaShopAfterSaleListResponse.java │ │ │ │ ├── WxMaShopAuditBrandResponse.java │ │ │ │ ├── WxMaShopAuditCategoryResponse.java │ │ │ │ ├── WxMaShopAuditResultResponse.java │ │ │ │ ├── WxMaShopBaseResponse.java │ │ │ │ ├── WxMaShopCatGetResponse.java │ │ │ │ ├── WxMaShopCouponListResponse.java │ │ │ │ ├── WxMaShopCouponResponse.java │ │ │ │ ├── WxMaShopDeliveryGetCompanyListResponse.java │ │ │ │ ├── WxMaShopEcAfterSaleGetResponse.java │ │ │ │ ├── WxMaShopGetOrderListResponse.java │ │ │ │ ├── WxMaShopGetOrderResponse.java │ │ │ │ ├── WxMaShopGetPaymentParamsResponse.java │ │ │ │ ├── WxMaShopGetSpuListResponse.java │ │ │ │ ├── WxMaShopGetSpuResponse.java │ │ │ │ ├── WxMaShopPayCreateOrderResponse.java │ │ │ │ ├── WxMaShopPayGetOrderResponse.java │ │ │ │ ├── WxMaShopRegisterCheckResponse.java │ │ │ │ ├── WxMaShopSearchSharerResponse.java │ │ │ │ ├── WxMaShopSharerBindResponse.java │ │ │ │ ├── WxMaShopSharerDataSummaryResponse.java │ │ │ │ ├── WxMaShopSharerListResponse.java │ │ │ │ ├── WxMaShopSharerLiveOrderListResponse.java │ │ │ │ ├── WxMaShopSharerLiveSummaryListResponse.java │ │ │ │ ├── WxMaShopSharerUnbindResponse.java │ │ │ │ └── WxMaShopUserCouponListResponse.java │ │ ├── shortlink │ │ │ └── GenerateShortLinkRequest.java │ │ ├── template │ │ │ ├── WxMaTemplateAddResult.java │ │ │ ├── WxMaTemplateLibraryGetResult.java │ │ │ ├── WxMaTemplateLibraryListResult.java │ │ │ └── WxMaTemplateListResult.java │ │ ├── urllink │ │ │ ├── CloudBase.java │ │ │ ├── GenerateUrlLinkRequest.java │ │ │ ├── request │ │ │ │ └── QueryUrlLinkRequest.java │ │ │ └── response │ │ │ │ └── QueryUrlLinkResponse.java │ │ ├── vod │ │ │ ├── WxMaVodApplyUploadRequest.java │ │ │ ├── WxMaVodApplyUploadResponse.java │ │ │ ├── WxMaVodAuditDramaRequest.java │ │ │ ├── WxMaVodAuditDramaResponse.java │ │ │ ├── WxMaVodCdnLogRequest.java │ │ │ ├── WxMaVodCdnLogResponse.java │ │ │ ├── WxMaVodCdnUsageRequest.java │ │ │ ├── WxMaVodCdnUsageResponse.java │ │ │ ├── WxMaVodCommitUploadRequest.java │ │ │ ├── WxMaVodCommitUploadResponse.java │ │ │ ├── WxMaVodDeleteMediaRequest.java │ │ │ ├── WxMaVodDramaInfo.java │ │ │ ├── WxMaVodGetCdnLogRequest.java │ │ │ ├── WxMaVodGetCdnLogResponse.java │ │ │ ├── WxMaVodGetCdnUsageRequest.java │ │ │ ├── WxMaVodGetCdnUsageResponse.java │ │ │ ├── WxMaVodGetDramaRequest.java │ │ │ ├── WxMaVodGetDramaResponse.java │ │ │ ├── WxMaVodGetMediaLinkRequest.java │ │ │ ├── WxMaVodGetMediaLinkResponse.java │ │ │ ├── WxMaVodGetMediaRequest.java │ │ │ ├── WxMaVodGetMediaResponse.java │ │ │ ├── WxMaVodGetTaskRequest.java │ │ │ ├── WxMaVodGetTaskResponse.java │ │ │ ├── WxMaVodListDramaRequest.java │ │ │ ├── WxMaVodListMediaRequest.java │ │ │ ├── WxMaVodMediaInfo.java │ │ │ ├── WxMaVodMediaPlaybackInfo.java │ │ │ ├── WxMaVodPullUploadRequest.java │ │ │ ├── WxMaVodPullUploadResponse.java │ │ │ ├── WxMaVodSingleFileUploadResult.java │ │ │ └── WxMaVodUploadPartResult.java │ │ └── xpay │ │ │ ├── WxMaXPayCancelCurrencyPayRequest.java │ │ │ ├── WxMaXPayCancelCurrencyPayResponse.java │ │ │ ├── WxMaXPayCreateWithdrawOrderRequest.java │ │ │ ├── WxMaXPayCreateWithdrawOrderResponse.java │ │ │ ├── WxMaXPayCurrencyPayRequest.java │ │ │ ├── WxMaXPayCurrencyPayResponse.java │ │ │ ├── WxMaXPayDownloadBillRequest.java │ │ │ ├── WxMaXPayDownloadBillResponse.java │ │ │ ├── WxMaXPayNotifyProvideGoodsRequest.java │ │ │ ├── WxMaXPayPresentCurrencyRequest.java │ │ │ ├── WxMaXPayPresentCurrencyResponse.java │ │ │ ├── WxMaXPayQueryOrderRequest.java │ │ │ ├── WxMaXPayQueryOrderResponse.java │ │ │ ├── WxMaXPayQueryPublishGoodsRequest.java │ │ │ ├── WxMaXPayQueryPublishGoodsResponse.java │ │ │ ├── WxMaXPayQueryUploadGoodsRequest.java │ │ │ ├── WxMaXPayQueryUploadGoodsResponse.java │ │ │ ├── WxMaXPayQueryUserBalanceRequest.java │ │ │ ├── WxMaXPayQueryUserBalanceResponse.java │ │ │ ├── WxMaXPayQueryWithdrawOrderRequest.java │ │ │ ├── WxMaXPayQueryWithdrawOrderResponse.java │ │ │ ├── WxMaXPayRefundOrderRequest.java │ │ │ ├── WxMaXPayRefundOrderResponse.java │ │ │ ├── WxMaXPaySigParams.java │ │ │ ├── WxMaXPayStartPublishGoodsRequest.java │ │ │ └── WxMaXPayStartUploadGoodsRequest.java │ │ ├── builder │ │ ├── BaseBuilder.java │ │ ├── ImageMessageBuilder.java │ │ ├── LinkMessageBuilder.java │ │ ├── MaPageMessageBuilder.java │ │ └── TextMessageBuilder.java │ │ ├── config │ │ ├── WxMaConfig.java │ │ └── impl │ │ │ ├── AbstractWxMaRedisConfig.java │ │ │ ├── WxMaDefaultConfigImpl.java │ │ │ ├── WxMaRedisBetterConfigImpl.java │ │ │ ├── WxMaRedisConfigImpl.java │ │ │ ├── WxMaRedisConnectionConfigImpl.java │ │ │ └── WxMaRedissonConfigImpl.java │ │ ├── constant │ │ ├── WxMaApiUrlConstants.java │ │ └── WxMaConstants.java │ │ ├── executor │ │ ├── ApacheApiSignaturePostRequestExecutor.java │ │ ├── ApacheQrcodeBytesRequestExecutor.java │ │ ├── ApacheQrcodeFileRequestExecutor.java │ │ ├── ApacheUploadAuthMaterialRequestExecutor.java │ │ ├── ApacheVodSingleUploadRequestExecutor.java │ │ ├── ApacheVodUploadPartRequestExecutor.java │ │ ├── ApiSignaturePostRequestExecutor.java │ │ ├── HttpComponentsApiSignaturePostRequestExecutor.java │ │ ├── HttpComponentsQrcodeBytesRequestExecutor.java │ │ ├── HttpComponentsQrcodeFileRequestExecutor.java │ │ ├── HttpComponentsUploadAuthMaterialRequestExecutor.java │ │ ├── HttpComponentsVodSingleUploadRequestExecutor.java │ │ ├── HttpComponentsVodUploadPartRequestExecutor.java │ │ ├── JoddApiSignaturePostRequestExecutor.java │ │ ├── JoddHttpQrcodeFileRequestExecutor.java │ │ ├── JoddHttpUploadAuthMaterialRequestExecutor.java │ │ ├── JoddHttpVodSingleUploadRequestExecutor.java │ │ ├── JoddHttpVodUploadPartRequestExecutor.java │ │ ├── JoddQrcodeBytesRequestExecutor.java │ │ ├── OkHttpApiSignaturePostRequestExecutor.java │ │ ├── OkHttpQrcodeBytesRequestExecutor.java │ │ ├── OkHttpQrcodeFileRequestExecutor.java │ │ ├── OkHttpUploadAuthMaterialRequestExecutor.java │ │ ├── OkHttpVodSingleUploadRequestExecutor.java │ │ ├── OkHttpVodUploadPartRequestExecutor.java │ │ ├── QrcodeBytesRequestExecutor.java │ │ ├── QrcodeRequestExecutor.java │ │ ├── UploadAuthMaterialRequestExecutor.java │ │ ├── VodSingleUploadRequestExecutor.java │ │ └── VodUploadPartRequestExecutor.java │ │ ├── json │ │ ├── WxMaGsonBuilder.java │ │ └── adaptor │ │ │ ├── WxMaCodeCommitRequestGsonAdapter.java │ │ │ ├── WxMaCodeVersionDistributionGsonAdapter.java │ │ │ ├── WxMaRetainInfoGsonAdapter.java │ │ │ ├── WxMaSubscribeMessageGsonAdapter.java │ │ │ ├── WxMaSubscribeMsgEventJsonAdapter.java │ │ │ ├── WxMaUniformMessageGsonAdapter.java │ │ │ ├── WxMaUserPortraitGsonAdapter.java │ │ │ └── WxMaVisitDistributionGsonAdapter.java │ │ ├── message │ │ ├── WxMaMessageHandler.java │ │ ├── WxMaMessageInterceptor.java │ │ ├── WxMaMessageMatcher.java │ │ ├── WxMaMessageRouter.java │ │ ├── WxMaMessageRouterRule.java │ │ └── WxMaXmlOutMessage.java │ │ └── util │ │ ├── WxMaConfigHolder.java │ │ ├── crypt │ │ └── WxMaCryptUtils.java │ │ └── xml │ │ └── XStreamTransformer.java │ └── test │ ├── java │ └── cn │ │ └── binarywang │ │ └── wx │ │ └── miniapp │ │ ├── api │ │ └── impl │ │ │ ├── WxMaAnalysisServiceImplTest.java │ │ │ ├── WxMaCloudServiceImplTest.java │ │ │ ├── WxMaCodeServiceImplTest.java │ │ │ ├── WxMaDeviceSubscribeServiceImplTest.java │ │ │ ├── WxMaExpressServiceImplTest.java │ │ │ ├── WxMaImmediateDeliveryServiceImplTest.java │ │ │ ├── WxMaInternetServiceImplTest.java │ │ │ ├── WxMaIntracityServiceImpleTest.java │ │ │ ├── WxMaJsapiServiceImplTest.java │ │ │ ├── WxMaLinkServiceImplTest.java │ │ │ ├── WxMaLiveGoodsServiceImplTest.java │ │ │ ├── WxMaLiveMemberServiceImplTest.java │ │ │ ├── WxMaLiveServiceImplTest.java │ │ │ ├── WxMaMediaServiceImplTest.java │ │ │ ├── WxMaMsgServiceImplTest.java │ │ │ ├── WxMaOcrServiceImplTest.java │ │ │ ├── WxMaOpenApiServiceImplTest.java │ │ │ ├── WxMaPluginServiceImplTest.java │ │ │ ├── WxMaPromotionServiceTest.java │ │ │ ├── WxMaQrcodeServiceImplTest.java │ │ │ ├── WxMaReimburseInvoiceServiceImplTest.java │ │ │ ├── WxMaSchemeServiceImplTest.java │ │ │ ├── WxMaSecurityServiceImplTest.java │ │ │ ├── WxMaServiceImplTest.java │ │ │ ├── WxMaSettingServiceImplTest.java │ │ │ ├── WxMaShareServiceImplTest.java │ │ │ ├── WxMaShopAccountServiceImplTest.java │ │ │ ├── WxMaShopAfterSaleServiceImplTest.java │ │ │ ├── WxMaShopAuditServiceImplTest.java │ │ │ ├── WxMaShopCatServiceImplTest.java │ │ │ ├── WxMaShopDeliveryServiceImplTest.java │ │ │ ├── WxMaShopImgServiceImplTest.java │ │ │ ├── WxMaShopPayServiceImplTest.java │ │ │ ├── WxMaShopRegisterServiceImplTest.java │ │ │ ├── WxMaSubscribeServiceImplTest.java │ │ │ ├── WxMaUserServiceImplTest.java │ │ │ ├── WxMaVodServiceImplTest.java │ │ │ └── WxMaXPayServiceImplTest.java │ │ ├── bean │ │ ├── WxMaKefuMessageTest.java │ │ ├── WxMaMessageTest.java │ │ ├── WxMaRunStepInfoTest.java │ │ ├── analysis │ │ │ ├── WxMaRetainInfoTest.java │ │ │ ├── WxMaUserPortraitTest.java │ │ │ └── WxMaVisitDistributionTest.java │ │ └── code │ │ │ ├── WxMaCodeCommitRequestTest.java │ │ │ ├── WxMaCodeSubmitAuditRequestTest.java │ │ │ └── WxMaCodeVersionDistributionTest.java │ │ ├── config │ │ └── impl │ │ │ └── WxMaRedissonConfigImplTest.java │ │ ├── demo │ │ ├── WxMaDemoServer.java │ │ └── WxMaPortalServlet.java │ │ ├── json │ │ └── WxMaUniformMessageGsonAdapterTest.java │ │ ├── message │ │ └── WxMaXmlOutMessageTest.java │ │ ├── test │ │ ├── AddOrderJsonTest.java │ │ ├── ApiTestModule.java │ │ ├── TestConfig.java │ │ └── TestConstants.java │ │ └── util │ │ └── crypt │ │ └── WxMaCryptUtilsTest.java │ └── resources │ ├── logback-test.xml │ ├── test-config-sample.xml │ ├── tmp.png │ ├── wx-ma-jssecacerts │ └── wx-mp-jssecacerts ├── weixin-java-mp ├── LICENSE ├── pom.xml └── src │ ├── main │ └── java │ │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── mp │ │ ├── api │ │ ├── WxMpAiOpenService.java │ │ ├── WxMpCardService.java │ │ ├── WxMpCommentService.java │ │ ├── WxMpDataCubeService.java │ │ ├── WxMpDeviceService.java │ │ ├── WxMpDraftService.java │ │ ├── WxMpFreePublishService.java │ │ ├── WxMpGuideBuyerService.java │ │ ├── WxMpGuideMassedJobService.java │ │ ├── WxMpGuideMaterialService.java │ │ ├── WxMpGuideService.java │ │ ├── WxMpGuideTagService.java │ │ ├── WxMpKefuService.java │ │ ├── WxMpMarketingService.java │ │ ├── WxMpMassMessageService.java │ │ ├── WxMpMaterialService.java │ │ ├── WxMpMemberCardService.java │ │ ├── WxMpMenuService.java │ │ ├── WxMpMerchantInvoiceService.java │ │ ├── WxMpMessageHandler.java │ │ ├── WxMpMessageInterceptor.java │ │ ├── WxMpMessageMatcher.java │ │ ├── WxMpMessageRouter.java │ │ ├── WxMpMessageRouterRule.java │ │ ├── WxMpQrcodeService.java │ │ ├── WxMpReimburseInvoiceService.java │ │ ├── WxMpService.java │ │ ├── WxMpShakeService.java │ │ ├── WxMpStoreService.java │ │ ├── WxMpSubscribeMsgService.java │ │ ├── WxMpTemplateMsgService.java │ │ ├── WxMpUserBlacklistService.java │ │ ├── WxMpUserService.java │ │ ├── WxMpUserTagService.java │ │ ├── WxMpWifiService.java │ │ └── impl │ │ │ ├── BaseWxMpServiceImpl.java │ │ │ ├── WxMpAiOpenServiceImpl.java │ │ │ ├── WxMpCardServiceImpl.java │ │ │ ├── WxMpCommentServiceImpl.java │ │ │ ├── WxMpDataCubeServiceImpl.java │ │ │ ├── WxMpDeviceServiceImpl.java │ │ │ ├── WxMpDraftServiceImpl.java │ │ │ ├── WxMpFreePublishServiceImpl.java │ │ │ ├── WxMpGuideBuyerServiceImpl.java │ │ │ ├── WxMpGuideMassedJobServiceImpl.java │ │ │ ├── WxMpGuideMaterialServiceImpl.java │ │ │ ├── WxMpGuideServiceImpl.java │ │ │ ├── WxMpGuideTagServiceImpl.java │ │ │ ├── WxMpImgProcServiceImpl.java │ │ │ ├── WxMpKefuServiceImpl.java │ │ │ ├── WxMpMarketingServiceImpl.java │ │ │ ├── WxMpMassMessageServiceImpl.java │ │ │ ├── WxMpMaterialServiceImpl.java │ │ │ ├── WxMpMemberCardServiceImpl.java │ │ │ ├── WxMpMenuServiceImpl.java │ │ │ ├── WxMpMerchantInvoiceServiceImpl.java │ │ │ ├── WxMpOAuth2ServiceImpl.java │ │ │ ├── WxMpOcrServiceImpl.java │ │ │ ├── WxMpQrcodeServiceImpl.java │ │ │ ├── WxMpReimburseInvoiceServiceImpl.java │ │ │ ├── WxMpServiceHttpClientImpl.java │ │ │ ├── WxMpServiceHttpComponentsImpl.java │ │ │ ├── WxMpServiceImpl.java │ │ │ ├── WxMpServiceJoddHttpImpl.java │ │ │ ├── WxMpServiceOkHttpImpl.java │ │ │ ├── WxMpShakeServiceImpl.java │ │ │ ├── WxMpStoreServiceImpl.java │ │ │ ├── WxMpSubscribeMsgServiceImpl.java │ │ │ ├── WxMpTemplateMsgServiceImpl.java │ │ │ ├── WxMpUserBlacklistServiceImpl.java │ │ │ ├── WxMpUserServiceImpl.java │ │ │ ├── WxMpUserTagServiceImpl.java │ │ │ └── WxMpWifiServiceImpl.java │ │ ├── bean │ │ ├── WxMpMassNews.java │ │ ├── WxMpMassOpenIdsMessage.java │ │ ├── WxMpMassPreviewMessage.java │ │ ├── WxMpMassTagMessage.java │ │ ├── WxMpMassVideo.java │ │ ├── WxMpSemanticQuery.java │ │ ├── WxMpShakeInfoResult.java │ │ ├── WxMpShakeQuery.java │ │ ├── WxMpStableAccessTokenRequest.java │ │ ├── WxMpUserQuery.java │ │ ├── card │ │ │ ├── Abstract.java │ │ │ ├── AbstractCardCreateRequest.java │ │ │ ├── AdvancedInfo.java │ │ │ ├── BaseInfo.java │ │ │ ├── BaseInfoUpdate.java │ │ │ ├── BaseWxMpCardResult.java │ │ │ ├── BonusRule.java │ │ │ ├── Card.java │ │ │ ├── CardUpdateResult.java │ │ │ ├── CashCard.java │ │ │ ├── CashCardCreateRequest.java │ │ │ ├── CustomCell1.java │ │ │ ├── CustomField.java │ │ │ ├── DateInfo.java │ │ │ ├── DiscountCard.java │ │ │ ├── DiscountCardCreateRequest.java │ │ │ ├── GeneralCoupon.java │ │ │ ├── GeneralCouponCreateRequest.java │ │ │ ├── GiftCard.java │ │ │ ├── GiftCardCreateRequest.java │ │ │ ├── GrouponCard.java │ │ │ ├── GrouponCardCreateRequest.java │ │ │ ├── PayInfo.java │ │ │ ├── Sku.java │ │ │ ├── SwipeCard.java │ │ │ ├── TextImageList.java │ │ │ ├── TimeLimit.java │ │ │ ├── UseCondition.java │ │ │ ├── UserCard.java │ │ │ ├── WxMpCard.java │ │ │ ├── WxMpCardCodeCheckcodeResult.java │ │ │ ├── WxMpCardCodeDepositCountResult.java │ │ │ ├── WxMpCardCodeDepositResult.java │ │ │ ├── WxMpCardCreateRequest.java │ │ │ ├── WxMpCardCreateResult.java │ │ │ ├── WxMpCardDeleteResult.java │ │ │ ├── WxMpCardLandingPageCreateRequest.java │ │ │ ├── WxMpCardLandingPageCreateResult.java │ │ │ ├── WxMpCardMpnewsGethtmlResult.java │ │ │ ├── WxMpCardQrcodeCreateResult.java │ │ │ ├── WxMpCardResult.java │ │ │ ├── WxUserCardListResult.java │ │ │ ├── enums │ │ │ │ ├── BusinessServiceType.java │ │ │ │ ├── CardCodeType.java │ │ │ │ ├── CardColor.java │ │ │ │ ├── CardFieldType.java │ │ │ │ ├── CardRichFieldType.java │ │ │ │ ├── CardSceneType.java │ │ │ │ ├── CardStatusType.java │ │ │ │ ├── CardWechatFieldType.java │ │ │ │ ├── CustomFieldNameType.java │ │ │ │ └── DateInfoType.java │ │ │ └── membercard │ │ │ │ ├── ActivatePluginParam.java │ │ │ │ ├── ActivatePluginParamResult.java │ │ │ │ ├── MemberCard.java │ │ │ │ ├── MemberCardActivateUserFormRequest.java │ │ │ │ ├── MemberCardActivateUserFormResult.java │ │ │ │ ├── MemberCardCreateRequest.java │ │ │ │ ├── MemberCardUpdate.java │ │ │ │ ├── MemberCardUpdateRequest.java │ │ │ │ ├── MemberCardUserForm.java │ │ │ │ ├── MemberCardUserFormRichField.java │ │ │ │ ├── MemberCardUserInfo.java │ │ │ │ ├── NameValues.java │ │ │ │ ├── NotifyOptional.java │ │ │ │ ├── WxMpMemberCardActivateTempInfoResult.java │ │ │ │ ├── WxMpMemberCardActivatedMessage.java │ │ │ │ ├── WxMpMemberCardCreateMessage.java │ │ │ │ ├── WxMpMemberCardUpdateMessage.java │ │ │ │ ├── WxMpMemberCardUpdateResult.java │ │ │ │ └── WxMpMemberCardUserInfoResult.java │ │ ├── comment │ │ │ └── WxMpCommentListVo.java │ │ ├── datacube │ │ │ ├── WxDataCubeArticleResult.java │ │ │ ├── WxDataCubeArticleTotal.java │ │ │ ├── WxDataCubeArticleTotalDetail.java │ │ │ ├── WxDataCubeBaseResult.java │ │ │ ├── WxDataCubeInterfaceResult.java │ │ │ ├── WxDataCubeMsgResult.java │ │ │ ├── WxDataCubeUserCumulate.java │ │ │ └── WxDataCubeUserSummary.java │ │ ├── device │ │ │ ├── AbstractDeviceBean.java │ │ │ ├── BaseResp.java │ │ │ ├── RespMsg.java │ │ │ ├── TransMsgResp.java │ │ │ ├── WxDevice.java │ │ │ ├── WxDeviceAuthorize.java │ │ │ ├── WxDeviceAuthorizeResult.java │ │ │ ├── WxDeviceBind.java │ │ │ ├── WxDeviceBindDeviceResult.java │ │ │ ├── WxDeviceBindResult.java │ │ │ ├── WxDeviceMsg.java │ │ │ ├── WxDeviceOpenIdResult.java │ │ │ └── WxDeviceQrCodeResult.java │ │ ├── draft │ │ │ ├── WxMpAddDraft.java │ │ │ ├── WxMpDraftArticles.java │ │ │ ├── WxMpDraftCoverInfo.java │ │ │ ├── WxMpDraftImageInfo.java │ │ │ ├── WxMpDraftInfo.java │ │ │ ├── WxMpDraftItem.java │ │ │ ├── WxMpDraftList.java │ │ │ ├── WxMpDraftProductInfo.java │ │ │ └── WxMpUpdateDraft.java │ │ ├── freepublish │ │ │ ├── WxMpFreePublishArticles.java │ │ │ ├── WxMpFreePublishInfo.java │ │ │ ├── WxMpFreePublishItem.java │ │ │ ├── WxMpFreePublishList.java │ │ │ └── WxMpFreePublishStatus.java │ │ ├── guide │ │ │ ├── WxMpAddGuideAutoReply.java │ │ │ ├── WxMpAddGuideBuyerInfo.java │ │ │ ├── WxMpGuideAcctConfig.java │ │ │ ├── WxMpGuideAutoReply.java │ │ │ ├── WxMpGuideBuyerInfo.java │ │ │ ├── WxMpGuideBuyerInfoList.java │ │ │ ├── WxMpGuideBuyerRelation.java │ │ │ ├── WxMpGuideBuyerResp.java │ │ │ ├── WxMpGuideCardMaterialInfo.java │ │ │ ├── WxMpGuideConfig.java │ │ │ ├── WxMpGuideFastReply.java │ │ │ ├── WxMpGuideGroup.java │ │ │ ├── WxMpGuideGroupInfo.java │ │ │ ├── WxMpGuideGroupInfoList.java │ │ │ ├── WxMpGuideImgMaterialInfo.java │ │ │ ├── WxMpGuideImgMaterialInfoList.java │ │ │ ├── WxMpGuideInfo.java │ │ │ ├── WxMpGuideList.java │ │ │ ├── WxMpGuideMassed.java │ │ │ ├── WxMpGuideMassedBuyerInfo.java │ │ │ ├── WxMpGuideMassedInfo.java │ │ │ ├── WxMpGuideMaterialInfo.java │ │ │ ├── WxMpGuideMsg.java │ │ │ ├── WxMpGuideMsgList.java │ │ │ ├── WxMpGuideOffLineReply.java │ │ │ ├── WxMpGuideSensitiveWords.java │ │ │ ├── WxMpGuideTagInfo.java │ │ │ ├── WxMpGuideWordMaterialInfo.java │ │ │ └── WxMpGuideWordMaterialInfoList.java │ │ ├── invoice │ │ │ ├── merchant │ │ │ │ ├── ClearOutInvoiceRequest.java │ │ │ │ ├── InvoiceAuthDataRequest.java │ │ │ │ ├── InvoiceAuthDataResult.java │ │ │ │ ├── InvoiceAuthPageRequest.java │ │ │ │ ├── InvoiceAuthPageResult.java │ │ │ │ ├── InvoiceAuthPageSetting.java │ │ │ │ ├── InvoiceRejectRequest.java │ │ │ │ ├── InvoiceResult.java │ │ │ │ ├── MakeOutInvoiceRequest.java │ │ │ │ ├── MerchantContactInfo.java │ │ │ │ ├── MerchantContactInfoWrapper.java │ │ │ │ ├── MerchantInvoicePlatformInfo.java │ │ │ │ └── MerchantInvoicePlatformInfoWrapper.java │ │ │ └── reimburse │ │ │ │ ├── InvoiceBatchRequest.java │ │ │ │ ├── InvoiceCommodityInfo.java │ │ │ │ ├── InvoiceInfoRequest.java │ │ │ │ ├── InvoiceInfoResponse.java │ │ │ │ ├── InvoiceUserInfo.java │ │ │ │ ├── UpdateInvoiceStatusRequest.java │ │ │ │ └── UpdateStatusBatchRequest.java │ │ ├── kefu │ │ │ ├── WxMpKefuMessage.java │ │ │ ├── request │ │ │ │ ├── WxMpKfAccountRequest.java │ │ │ │ └── WxMpKfSessionRequest.java │ │ │ └── result │ │ │ │ ├── WxMpKfInfo.java │ │ │ │ ├── WxMpKfList.java │ │ │ │ ├── WxMpKfMsgList.java │ │ │ │ ├── WxMpKfMsgRecord.java │ │ │ │ ├── WxMpKfOnlineList.java │ │ │ │ ├── WxMpKfSession.java │ │ │ │ ├── WxMpKfSessionGetResult.java │ │ │ │ ├── WxMpKfSessionList.java │ │ │ │ └── WxMpKfSessionWaitCaseList.java │ │ ├── marketing │ │ │ ├── WxMpAdLead.java │ │ │ ├── WxMpAdLeadFilter.java │ │ │ ├── WxMpAdLeadInfo.java │ │ │ ├── WxMpAdLeadPageInfo.java │ │ │ ├── WxMpAdLeadResult.java │ │ │ ├── WxMpUserAction.java │ │ │ └── WxMpUserActionSet.java │ │ ├── material │ │ │ ├── WxMediaImgUploadResult.java │ │ │ ├── WxMpMaterial.java │ │ │ ├── WxMpMaterialArticleUpdate.java │ │ │ ├── WxMpMaterialCountResult.java │ │ │ ├── WxMpMaterialFileBatchGetResult.java │ │ │ ├── WxMpMaterialNews.java │ │ │ ├── WxMpMaterialNewsBatchGetResult.java │ │ │ ├── WxMpMaterialUploadResult.java │ │ │ ├── WxMpMaterialVideoInfoResult.java │ │ │ └── WxMpNewsArticle.java │ │ ├── menu │ │ │ ├── WxMpGetSelfMenuInfoResult.java │ │ │ ├── WxMpMenu.java │ │ │ └── WxMpSelfMenuInfo.java │ │ ├── message │ │ │ ├── ArticleUrlResult.java │ │ │ ├── HardWare.java │ │ │ ├── ScanCodeInfo.java │ │ │ ├── SendLocationInfo.java │ │ │ ├── SendPicsInfo.java │ │ │ ├── WxMpSubscribeMsgEvent.java │ │ │ ├── WxMpXmlMessage.java │ │ │ ├── WxMpXmlOutDeviceMessage.java │ │ │ ├── WxMpXmlOutImageMessage.java │ │ │ ├── WxMpXmlOutMessage.java │ │ │ ├── WxMpXmlOutMusicMessage.java │ │ │ ├── WxMpXmlOutNewsMessage.java │ │ │ ├── WxMpXmlOutTextMessage.java │ │ │ ├── WxMpXmlOutTransferKefuMessage.java │ │ │ ├── WxMpXmlOutVideoMessage.java │ │ │ └── WxMpXmlOutVoiceMessage.java │ │ ├── result │ │ │ ├── WxMpChangeOpenid.java │ │ │ ├── WxMpCurrentAutoReplyInfo.java │ │ │ ├── WxMpMassGetResult.java │ │ │ ├── WxMpMassSendResult.java │ │ │ ├── WxMpMassSpeedGetResult.java │ │ │ ├── WxMpMassUploadResult.java │ │ │ ├── WxMpQrCodeTicket.java │ │ │ ├── WxMpSemanticQueryResult.java │ │ │ ├── WxMpShortKeyResult.java │ │ │ ├── WxMpUser.java │ │ │ ├── WxMpUserBlacklistGetResult.java │ │ │ └── WxMpUserList.java │ │ ├── shake │ │ │ ├── WxMpDeviceIdentifier.java │ │ │ ├── WxMpShakeAroundDeviceBindPageQuery.java │ │ │ ├── WxMpShakeAroundPageAddQuery.java │ │ │ ├── WxMpShakeAroundPageAddResult.java │ │ │ ├── WxMpShakeAroundRelationSearchQuery.java │ │ │ └── WxMpShakeAroundRelationSearchResult.java │ │ ├── store │ │ │ ├── WxMpStoreBaseInfo.java │ │ │ ├── WxMpStoreInfo.java │ │ │ └── WxMpStoreListResult.java │ │ ├── subscribe │ │ │ └── WxMpSubscribeMessage.java │ │ ├── tag │ │ │ ├── WxTagListUser.java │ │ │ └── WxUserTag.java │ │ ├── template │ │ │ ├── WxMpTemplate.java │ │ │ ├── WxMpTemplateData.java │ │ │ ├── WxMpTemplateIndustry.java │ │ │ ├── WxMpTemplateIndustryEnum.java │ │ │ └── WxMpTemplateMessage.java │ │ └── wifi │ │ │ ├── WxMpWifiShopDataResult.java │ │ │ └── WxMpWifiShopListResult.java │ │ ├── builder │ │ ├── kefu │ │ │ ├── BaseBuilder.java │ │ │ ├── ImageBuilder.java │ │ │ ├── MiniProgramPageBuilder.java │ │ │ ├── MpNewsArticleBuilder.java │ │ │ ├── MpNewsBuilder.java │ │ │ ├── MusicBuilder.java │ │ │ ├── NewsBuilder.java │ │ │ ├── TextBuilder.java │ │ │ ├── VideoBuilder.java │ │ │ ├── VoiceBuilder.java │ │ │ ├── WxCardBuilder.java │ │ │ └── WxMsgMenuBuilder.java │ │ └── outxml │ │ │ ├── BaseBuilder.java │ │ │ ├── DeviceBuilder.java │ │ │ ├── ImageBuilder.java │ │ │ ├── MusicBuilder.java │ │ │ ├── NewsBuilder.java │ │ │ ├── TextBuilder.java │ │ │ ├── TransferCustomerServiceBuilder.java │ │ │ ├── VideoBuilder.java │ │ │ └── VoiceBuilder.java │ │ ├── config │ │ ├── WxMpConfigStorage.java │ │ ├── WxMpHostConfig.java │ │ └── impl │ │ │ ├── WxMpDefaultConfigImpl.java │ │ │ ├── WxMpMapConfigImpl.java │ │ │ ├── WxMpRedisConfigImpl.java │ │ │ └── WxMpRedissonConfigImpl.java │ │ ├── constant │ │ └── WxMpEventConstants.java │ │ ├── enums │ │ ├── AiLangType.java │ │ ├── WxCardType.java │ │ └── WxMpApiUrl.java │ │ └── util │ │ ├── WxMpConfigStorageHolder.java │ │ ├── crypto │ │ └── WxMpCryptUtil.java │ │ ├── json │ │ ├── WxMediaImgUploadResultGsonAdapter.java │ │ ├── WxMpCardGsonAdapter.java │ │ ├── WxMpCardResultGsonAdapter.java │ │ ├── WxMpChangeOpenidGsonAdapter.java │ │ ├── WxMpGsonBuilder.java │ │ ├── WxMpIndustryGsonAdapter.java │ │ ├── WxMpKefuMessageGsonAdapter.java │ │ ├── WxMpMassNewsGsonAdapter.java │ │ ├── WxMpMassOpenIdsMessageGsonAdapter.java │ │ ├── WxMpMassPreviewMessageGsonAdapter.java │ │ ├── WxMpMassSendResultAdapter.java │ │ ├── WxMpMassTagMessageGsonAdapter.java │ │ ├── WxMpMassUploadResultAdapter.java │ │ ├── WxMpMassVideoAdapter.java │ │ ├── WxMpMaterialArticleUpdateGsonAdapter.java │ │ ├── WxMpMaterialCountResultAdapter.java │ │ ├── WxMpMaterialFileBatchGetGsonAdapter.java │ │ ├── WxMpMaterialFileBatchGetGsonItemAdapter.java │ │ ├── WxMpMaterialNewsBatchGetGsonAdapter.java │ │ ├── WxMpMaterialNewsBatchGetGsonItemAdapter.java │ │ ├── WxMpMaterialNewsGsonAdapter.java │ │ ├── WxMpMaterialUploadResultAdapter.java │ │ ├── WxMpMaterialVideoInfoResultAdapter.java │ │ ├── WxMpMemberCardActivateTempInfoResultGsonAdapter.java │ │ ├── WxMpMemberCardUpdateResultGsonAdapter.java │ │ ├── WxMpMemberCardUserInfoResultGsonAdapter.java │ │ ├── WxMpNewsArticleGsonAdapter.java │ │ ├── WxMpSemanticQueryResultAdapter.java │ │ ├── WxMpSubscribeMessageGsonAdapter.java │ │ ├── WxMpTemplateMessageGsonAdapter.java │ │ ├── WxMpUserCumulateGsonAdapter.java │ │ ├── WxMpUserGsonAdapter.java │ │ ├── WxMpUserSummaryGsonAdapter.java │ │ ├── WxQrCodeTicketAdapter.java │ │ ├── WxUserBlacklistGetResultGsonAdapter.java │ │ └── WxUserListGsonAdapter.java │ │ ├── requestexecuter │ │ ├── material │ │ │ ├── MaterialDeleteApacheHttpRequestExecutor.java │ │ │ ├── MaterialDeleteHttpComponentsRequestExecutor.java │ │ │ ├── MaterialDeleteJoddHttpRequestExecutor.java │ │ │ ├── MaterialDeleteOkhttpRequestExecutor.java │ │ │ ├── MaterialDeleteRequestExecutor.java │ │ │ ├── MaterialNewsInfoApacheHttpRequestExecutor.java │ │ │ ├── MaterialNewsInfoHttpComponentsRequestExecutor.java │ │ │ ├── MaterialNewsInfoJoddHttpRequestExecutor.java │ │ │ ├── MaterialNewsInfoOkhttpRequestExecutor.java │ │ │ ├── MaterialNewsInfoRequestExecutor.java │ │ │ ├── MaterialUploadApacheHttpRequestExecutor.java │ │ │ ├── MaterialUploadHttpComponentsRequestExecutor.java │ │ │ ├── MaterialUploadJoddHttpRequestExecutor.java │ │ │ ├── MaterialUploadOkhttpRequestExecutor.java │ │ │ ├── MaterialUploadRequestExecutor.java │ │ │ ├── MaterialVideoInfoApacheHttpRequestExecutor.java │ │ │ ├── MaterialVideoInfoHttpComponentsRequestExecutor.java │ │ │ ├── MaterialVideoInfoJoddHttpRequestExecutor.java │ │ │ ├── MaterialVideoInfoOkhttpRequestExecutor.java │ │ │ ├── MaterialVideoInfoRequestExecutor.java │ │ │ ├── MaterialVoiceAndImageDownloadApacheHttpRequestExecutor.java │ │ │ ├── MaterialVoiceAndImageDownloadHttpComponentsRequestExecutor.java │ │ │ ├── MaterialVoiceAndImageDownloadJoddHttpRequestExecutor.java │ │ │ ├── MaterialVoiceAndImageDownloadOkhttpRequestExecutor.java │ │ │ └── MaterialVoiceAndImageDownloadRequestExecutor.java │ │ ├── media │ │ │ ├── MediaImgUploadApacheHttpRequestExecutor.java │ │ │ ├── MediaImgUploadHttpComponentsRequestExecutor.java │ │ │ ├── MediaImgUploadHttpRequestExecutor.java │ │ │ ├── MediaImgUploadOkhttpRequestExecutor.java │ │ │ └── MediaImgUploadRequestExecutor.java │ │ ├── qrcode │ │ │ ├── QrCodeApacheHttpRequestExecutor.java │ │ │ ├── QrCodeHttpComponentsRequestExecutor.java │ │ │ ├── QrCodeJoddHttpRequestExecutor.java │ │ │ ├── QrCodeOkhttpRequestExecutor.java │ │ │ └── QrCodeRequestExecutor.java │ │ └── voice │ │ │ ├── VoiceUploadApacheHttpRequestExecutor.java │ │ │ ├── VoiceUploadHttpComponentsRequestExecutor.java │ │ │ └── VoiceUploadRequestExecutor.java │ │ └── xml │ │ └── XStreamTransformer.java │ └── test │ ├── java │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── mp │ │ ├── api │ │ ├── WxMpBusyRetryTest.java │ │ ├── WxMpJsAPITest.java │ │ ├── WxMpMessageRouterTest.java │ │ ├── impl │ │ │ ├── BaseWxMpServiceImplTest.java │ │ │ ├── WxMpAiOpenServiceImplTest.java │ │ │ ├── WxMpCardServiceImplTest.java │ │ │ ├── WxMpCommentServiceImplTest.java │ │ │ ├── WxMpDataCubeServiceImplTest.java │ │ │ ├── WxMpDeviceServiceImplTest.java │ │ │ ├── WxMpDraftServiceImplTest.java │ │ │ ├── WxMpFreePublishServiceImplTest.java │ │ │ ├── WxMpGuideBuyerServiceImplTest.java │ │ │ ├── WxMpGuideMassedJobServiceImplTest.java │ │ │ ├── WxMpGuideMaterialServiceImplTest.java │ │ │ ├── WxMpGuideServiceImplTest.java │ │ │ ├── WxMpGuideTagServiceImplTest.java │ │ │ ├── WxMpImgProcServiceImplTest.java │ │ │ ├── WxMpKefuServiceImplTest.java │ │ │ ├── WxMpMapConfigImplTest.java │ │ │ ├── WxMpMarketingServiceImplTest.java │ │ │ ├── WxMpMassMessageServiceImplTest.java │ │ │ ├── WxMpMaterialServiceImplTest.java │ │ │ ├── WxMpMemberCardServiceImplTest.java │ │ │ ├── WxMpMenuServiceImplTest.java │ │ │ ├── WxMpOAuth2ServiceImplTest.java │ │ │ ├── WxMpOcrServiceImplTest.java │ │ │ ├── WxMpQrcodeServiceImplTest.java │ │ │ ├── WxMpReimburseInvoiceServiceImplTest.java │ │ │ ├── WxMpServiceImplTest.java │ │ │ ├── WxMpShakeServiceImplTest.java │ │ │ ├── WxMpStoreServiceImplTest.java │ │ │ ├── WxMpSubscribeMsgServiceImplTest.java │ │ │ ├── WxMpTemplateMsgServiceImplTest.java │ │ │ ├── WxMpUserBlacklistServiceImplTest.java │ │ │ ├── WxMpUserServiceImplTest.java │ │ │ ├── WxMpUserTagServiceImplTest.java │ │ │ └── WxMpWifiServiceImplTest.java │ │ └── test │ │ │ ├── ApiTestModule.java │ │ │ ├── TestConfigStorage.java │ │ │ └── TestConstants.java │ │ ├── bean │ │ ├── card │ │ │ └── membercard │ │ │ │ ├── WxMpMemberCardUpdateResultTest.java │ │ │ │ └── WxMpMemberCardUserInfoResultTest.java │ │ ├── kefu │ │ │ ├── WxMpKefuMessageTest.java │ │ │ └── result │ │ │ │ ├── WxMpKfListTest.java │ │ │ │ └── WxMpKfOnlineListTest.java │ │ ├── marketing │ │ │ └── WxMpUserActionTest.java │ │ ├── menu │ │ │ ├── WxMpGetSelfMenuInfoResultTest.java │ │ │ └── WxMpMenuTest.java │ │ ├── message │ │ │ ├── WxMpXmlMessageTest.java │ │ │ ├── WxMpXmlOutImageMessageTest.java │ │ │ ├── WxMpXmlOutMusicMessageTest.java │ │ │ ├── WxMpXmlOutNewsMessageTest.java │ │ │ ├── WxMpXmlOutTextMessageTest.java │ │ │ ├── WxMpXmlOutTransferKefuMessageTest.java │ │ │ ├── WxMpXmlOutVideoMessageTest.java │ │ │ └── WxMpXmlOutVoiceMessageTest.java │ │ ├── result │ │ │ ├── WxMpAdLeadResultTest.java │ │ │ └── WxMpCurrentAutoReplyInfoTest.java │ │ ├── subscribe │ │ │ └── WxMpSubscribeMessageTest.java │ │ └── template │ │ │ ├── WxMpTemplateIndustryTest.java │ │ │ └── WxMpTemplateMessageTest.java │ │ └── demo │ │ ├── DemoGuessNumberHandler.java │ │ ├── DemoImageHandler.java │ │ ├── DemoLogHandler.java │ │ ├── DemoOAuth2Handler.java │ │ ├── DemoTextHandler.java │ │ ├── WxMpDemoInMemoryConfigStorage.java │ │ ├── WxMpDemoServer.java │ │ ├── WxMpEndpointServlet.java │ │ └── WxMpOAuth2Servlet.java │ └── resources │ ├── 0.jpeg │ ├── 1.jpeg │ ├── logback-test.xml │ ├── mm.jpeg │ ├── mm.mp3 │ ├── mm.mp4 │ ├── test-config.sample.xml │ └── testng.xml ├── weixin-java-open ├── README.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── open │ │ ├── api │ │ ├── WxOpenComponentService.java │ │ ├── WxOpenConfigStorage.java │ │ ├── WxOpenFastMaService.java │ │ ├── WxOpenMaAuthService.java │ │ ├── WxOpenMaBasicService.java │ │ ├── WxOpenMaEmbeddedService.java │ │ ├── WxOpenMaIcpService.java │ │ ├── WxOpenMaPrivacyService.java │ │ ├── WxOpenMaService.java │ │ ├── WxOpenMaShoppingOrdersService.java │ │ ├── WxOpenMinishopGoodsService.java │ │ ├── WxOpenMinishopService.java │ │ ├── WxOpenMpService.java │ │ ├── WxOpenService.java │ │ └── impl │ │ │ ├── AbstractWxOpenInRedisConfigStorage.java │ │ │ ├── WxOpenComponentServiceImpl.java │ │ │ ├── WxOpenFastMaServiceImpl.java │ │ │ ├── WxOpenInMemoryConfigStorage.java │ │ │ ├── WxOpenInRedisConfigStorage.java │ │ │ ├── WxOpenInRedisTemplateConfigStorage.java │ │ │ ├── WxOpenInRedissonConfigStorage.java │ │ │ ├── WxOpenMaAuthServiceImpl.java │ │ │ ├── WxOpenMaBasicServiceImpl.java │ │ │ ├── WxOpenMaEmbeddedServiceImpl.java │ │ │ ├── WxOpenMaIcpServiceImpl.java │ │ │ ├── WxOpenMaPrivacyServiceImpl.java │ │ │ ├── WxOpenMaServiceImpl.java │ │ │ ├── WxOpenMaShoppingOrdersServiceImpl.java │ │ │ ├── WxOpenMessageRouter.java │ │ │ ├── WxOpenMinishopGoodsServiceImpl.java │ │ │ ├── WxOpenMinishopServiceImpl.java │ │ │ ├── WxOpenMpOAuth2ServiceImpl.java │ │ │ ├── WxOpenMpServiceImpl.java │ │ │ ├── WxOpenOAuth2ServiceImpl.java │ │ │ ├── WxOpenServiceAbstractImpl.java │ │ │ ├── WxOpenServiceApacheHttpClientImpl.java │ │ │ └── WxOpenServiceImpl.java │ │ ├── bean │ │ ├── CommonUploadMultiParam.java │ │ ├── WxOpenAuthorizerAccessToken.java │ │ ├── WxOpenComponentAccessToken.java │ │ ├── WxOpenCreateResult.java │ │ ├── WxOpenGetResult.java │ │ ├── WxOpenMaCodeTemplate.java │ │ ├── auth │ │ │ ├── MaAuthQueryIdentityTreeResult.java │ │ │ ├── MaAuthQueryIdentityTreeResultIdentityLeaf.java │ │ │ ├── MaAuthQueryIdentityTreeResultIdentityNode.java │ │ │ ├── MaAuthQueryResult.java │ │ │ ├── MaAuthQueryResultDispatchInfo.java │ │ │ ├── MaAuthResubmitParam.java │ │ │ ├── MaAuthResubmitParamAuthData.java │ │ │ ├── MaAuthSubmitParam.java │ │ │ ├── MaAuthSubmitParamAuthData.java │ │ │ ├── MaAuthSubmitParamContactInfo.java │ │ │ ├── MaAuthSubmitParamInvoiceElectronic.java │ │ │ ├── MaAuthSubmitParamInvoiceInfo.java │ │ │ ├── MaAuthSubmitParamInvoiceVat.java │ │ │ ├── MaAuthSubmitResult.java │ │ │ ├── MaAuthUploadResult.java │ │ │ ├── WxOpenAuthorizationInfo.java │ │ │ ├── WxOpenAuthorizerInfo.java │ │ │ └── WxOpenMiniProgramInfo.java │ │ ├── icp │ │ │ ├── WxOpenApplyIcpFilingParam.java │ │ │ ├── WxOpenApplyIcpFilingResult.java │ │ │ ├── WxOpenIcpCreateIcpVerifyTaskResult.java │ │ │ ├── WxOpenIcpEntranceInfoResult.java │ │ │ ├── WxOpenIcpVerifyTaskResult.java │ │ │ ├── WxOpenOnlineIcpOrderResult.java │ │ │ ├── WxOpenQueryAuthAndIcpResult.java │ │ │ ├── WxOpenQueryIcpCertificateTypeResult.java │ │ │ ├── WxOpenQueryIcpDistrictCodeResult.java │ │ │ ├── WxOpenQueryIcpNrlxTypesResult.java │ │ │ ├── WxOpenQueryIcpServiceContentTypesResult.java │ │ │ ├── WxOpenQueryIcpSubjectTypeResult.java │ │ │ ├── WxOpenSubmitAuthAndIcpParam.java │ │ │ ├── WxOpenSubmitAuthAndIcpResult.java │ │ │ ├── WxOpenUploadIcpMediaParam.java │ │ │ └── WxOpenUploadIcpMediaResult.java │ │ ├── ma │ │ │ ├── WxFastMaCategory.java │ │ │ ├── WxMaOpenCommitExtInfo.java │ │ │ ├── WxMaOpenCommitStandardExt.java │ │ │ ├── WxMaOpenNetworkTimeout.java │ │ │ ├── WxMaOpenPage.java │ │ │ ├── WxMaOpenSubpackage.java │ │ │ ├── WxMaOpenTab.java │ │ │ ├── WxMaOpenTabBar.java │ │ │ ├── WxMaOpenWindow.java │ │ │ ├── WxMaPrefetchDomain.java │ │ │ ├── WxMaQrcodeParam.java │ │ │ ├── WxMaScheme.java │ │ │ ├── WxMaVerifyBetaWeappVerifyInfo.java │ │ │ ├── WxOpenMaApplyOrderPathInfo.java │ │ │ ├── WxOpenMaCategory.java │ │ │ ├── WxOpenMaEmbedded.java │ │ │ ├── WxOpenMaHistoryVersion.java │ │ │ ├── WxOpenMaMember.java │ │ │ └── privacy │ │ │ │ ├── ApplyPrivacyInterface.java │ │ │ │ ├── ApplyPrivacyInterfaceResult.java │ │ │ │ ├── GetPrivacyInterfaceResult.java │ │ │ │ ├── GetPrivacySettingResult.java │ │ │ │ ├── PrivacyKeyEnum.java │ │ │ │ ├── PrivacyOwnerSetting.java │ │ │ │ ├── SetPrivacySetting.java │ │ │ │ └── UploadPrivacyFileResult.java │ │ ├── message │ │ │ ├── WxOpenMaSubmitAuditMessage.java │ │ │ ├── WxOpenMaVerifyBetaWeappMessage.java │ │ │ └── WxOpenXmlMessage.java │ │ ├── minishop │ │ │ ├── MinishopAddressInfo.java │ │ │ ├── MinishopAuditStatus.java │ │ │ ├── MinishopBaseInfo.java │ │ │ ├── MinishopBrand.java │ │ │ ├── MinishopBrandList.java │ │ │ ├── MinishopBusiLicense.java │ │ │ ├── MinishopCategories.java │ │ │ ├── MinishopCategory.java │ │ │ ├── MinishopDeliveryTemplate.java │ │ │ ├── MinishopDeliveryTemplateResult.java │ │ │ ├── MinishopIdcardInfo.java │ │ │ ├── MinishopMerchantinfo.java │ │ │ ├── MinishopNameInfo.java │ │ │ ├── MinishopOrganizationCodeInfo.java │ │ │ ├── MinishopPicFile.java │ │ │ ├── MinishopReturnInfo.java │ │ │ ├── MinishopShopCat.java │ │ │ ├── MinishopShopCatList.java │ │ │ ├── MinishopSuperAdministratorInfo.java │ │ │ ├── coupon │ │ │ │ ├── WxMinishopCoupon.java │ │ │ │ ├── WxMinishopCouponDiscountCondition.java │ │ │ │ ├── WxMinishopCouponDiscountInfo.java │ │ │ │ ├── WxMinishopCouponExtInfo.java │ │ │ │ ├── WxMinishopCouponPromoteInfo.java │ │ │ │ ├── WxMinishopCouponReceiveInfo.java │ │ │ │ ├── WxMinishopCouponResponse.java │ │ │ │ ├── WxMinishopCouponStock.java │ │ │ │ ├── WxMinishopCouponStockInfo.java │ │ │ │ └── WxMinishopCouponValidInfo.java │ │ │ ├── goods │ │ │ │ ├── WxMinishopAddGoodsSkuData.java │ │ │ │ ├── WxMinishopAddGoodsSpuData.java │ │ │ │ ├── WxMinishopAddGoodsSpuResult.java │ │ │ │ ├── WxMinishopDeliveryCompany.java │ │ │ │ ├── WxMinishopGoodsSkuAttr.java │ │ │ │ ├── WxMinishopSku.java │ │ │ │ └── WxMinishopSpu.java │ │ │ └── limitdiscount │ │ │ │ ├── LimitDiscountGoods.java │ │ │ │ └── LimitDiscountSku.java │ │ ├── minishopgoods │ │ │ ├── AddMinishopGoodsSPU.java │ │ │ ├── Attr.java │ │ │ ├── Cat.java │ │ │ ├── DescInfo.java │ │ │ ├── ExpressInfo.java │ │ │ ├── GoodsCat.java │ │ │ ├── GoodsCatList.java │ │ │ ├── ParentCatId.java │ │ │ └── Sku.java │ │ ├── mp │ │ │ └── FastRegisterResult.java │ │ ├── result │ │ │ ├── WxAmpLinkResult.java │ │ │ ├── WxDownlooadQrcodeJumpResult.java │ │ │ ├── WxFastMaAccountBasicInfoResult.java │ │ │ ├── WxFastMaBeenSetCategoryResult.java │ │ │ ├── WxFastMaCanSetCategoryResult.java │ │ │ ├── WxFastMaCheckNickameResult.java │ │ │ ├── WxFastMaQueryNicknameStatusResult.java │ │ │ ├── WxFastMaSetNickameResult.java │ │ │ ├── WxGetQrcodeJumpResult.java │ │ │ ├── WxOpenAuthorizerInfoResult.java │ │ │ ├── WxOpenAuthorizerListResult.java │ │ │ ├── WxOpenAuthorizerOptionResult.java │ │ │ ├── WxOpenHaveResult.java │ │ │ ├── WxOpenMaApplyLiveInfoResult.java │ │ │ ├── WxOpenMaBindTesterResult.java │ │ │ ├── WxOpenMaCategoryListResult.java │ │ │ ├── WxOpenMaDomainConfirmFileResult.java │ │ │ ├── WxOpenMaDomainResult.java │ │ │ ├── WxOpenMaEmbeddedListResult.java │ │ │ ├── WxOpenMaGetCodePrivacyInfoResult.java │ │ │ ├── WxOpenMaGetOrderPathResult.java │ │ │ ├── WxOpenMaGrayReleasePlanResult.java │ │ │ ├── WxOpenMaHistoryVersionResult.java │ │ │ ├── WxOpenMaPageListResult.java │ │ │ ├── WxOpenMaPrefetchDomainResult.java │ │ │ ├── WxOpenMaQueryAuditResult.java │ │ │ ├── WxOpenMaQueryQuotaResult.java │ │ │ ├── WxOpenMaSearchStatusResult.java │ │ │ ├── WxOpenMaShowItemResult.java │ │ │ ├── WxOpenMaSubmitAuditResult.java │ │ │ ├── WxOpenMaTesterListResult.java │ │ │ ├── WxOpenMaVisitStatusResult.java │ │ │ ├── WxOpenMaWeappSupportVersionResult.java │ │ │ ├── WxOpenMaWebDomainResult.java │ │ │ ├── WxOpenQueryAuthResult.java │ │ │ ├── WxOpenRegisterBetaWeappResult.java │ │ │ ├── WxOpenRegisterPersonalWeappResult.java │ │ │ ├── WxOpenResult.java │ │ │ ├── WxOpenVersioninfoResult.java │ │ │ └── WxQrcodeJumpRule.java │ │ ├── shoppingOrders │ │ │ ├── CombinedShippingInfo.java │ │ │ ├── CombinedShoppingInfo.java │ │ │ ├── ContactBean.java │ │ │ ├── OrderKeyBean.java │ │ │ ├── PayerBean.java │ │ │ ├── ShippingInfo.java │ │ │ ├── ShippingListBean.java │ │ │ ├── ShoppingInfo.java │ │ │ ├── ShoppingInfoVerifyUpload.java │ │ │ ├── WxOpenShoppingInfoVerifyUploadResult.java │ │ │ └── WxOpenShoppingOrdersConfirmResult.java │ │ ├── tcb │ │ │ ├── ShareCloudBaseEnvRequest.java │ │ │ └── ShareCloudBaseEnvResponse.java │ │ └── tcbComponent │ │ │ ├── GetShareCloudBaseEnvResponse.java │ │ │ └── GetTcbEnvListResponse.java │ │ ├── executor │ │ ├── CommonUploadMultiRequestExecutor.java │ │ ├── CommonUploadMultiRequestExecutorApacheImpl.java │ │ ├── CommonUploadMultiRequestExecutorHttpComponentsImpl.java │ │ ├── CommonUploadMultiRequestExecutorJoddHttpImpl.java │ │ ├── CommonUploadMultiRequestExecutorOkHttpImpl.java │ │ ├── GenericUploadRequestExecutor.java │ │ ├── MaQrCodeApacheHttpRequestExecutor.java │ │ ├── MaQrCodeHttpComponentsRequestExecutor.java │ │ ├── MaQrCodeJoddHttpRequestExecutor.java │ │ ├── MaQrCodeOkhttpRequestExecutor.java │ │ └── MaQrCodeRequestExecutor.java │ │ └── util │ │ ├── WxOpenCryptUtil.java │ │ ├── json │ │ ├── WxOpenAuthorizationInfoGsonAdapter.java │ │ ├── WxOpenAuthorizerAccessTokenGsonAdapter.java │ │ ├── WxOpenAuthorizerInfoGsonAdapter.java │ │ ├── WxOpenAuthorizerInfoResultGsonAdapter.java │ │ ├── WxOpenAuthorizerListResultGsonAdapter.java │ │ ├── WxOpenAuthorizerOptionResultGsonAdapter.java │ │ ├── WxOpenComponentAccessTokenGsonAdapter.java │ │ ├── WxOpenGsonBuilder.java │ │ └── WxOpenQueryAuthResultGsonAdapter.java │ │ └── xml │ │ └── XStreamTransformer.java │ └── test │ ├── java │ └── me │ │ └── chanjar │ │ └── weixin │ │ └── open │ │ ├── api │ │ └── impl │ │ │ ├── WxOpenComponentServiceImplTest.java │ │ │ ├── WxOpenFastMaServiceImplTest.java │ │ │ ├── WxOpenInRedisConfigStorageTest.java │ │ │ ├── WxOpenInRedissonConfigStorageTest.java │ │ │ ├── WxOpenMaServiceImplTest.java │ │ │ ├── WxOpenMpOAuth2ServiceImplTest.java │ │ │ └── WxOpenOAuth2ServiceImplTest.java │ │ ├── bean │ │ └── result │ │ │ ├── WxFastMaAccountBasicInfoResultTest.java │ │ │ ├── WxFastMaBeenSetCategoryResultTest.java │ │ │ ├── WxFastMaCanSetCategoryResultTest.java │ │ │ └── WxOpenAuthorizerInfoResultTest.java │ │ └── test │ │ ├── ApiTestModule.java │ │ └── TestConfigStorage.java │ └── resources │ ├── logback-test.xml │ ├── test-config.sample.xml │ └── testng.xml ├── weixin-java-pay ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── github │ │ └── binarywang │ │ └── wxpay │ │ ├── bean │ │ ├── WxPayApiData.java │ │ ├── applyconfirm │ │ │ ├── ApplySubjectConfirmCreateRequest.java │ │ │ ├── ApplySubjectConfirmCreateResult.java │ │ │ ├── ApplySubjectConfirmMerchantStateQueryResult.java │ │ │ ├── ApplySubjectConfirmStateQueryResult.java │ │ │ └── enums │ │ │ │ ├── ApplySubjectStateEnum.java │ │ │ │ └── AuthorizeStateEnum.java │ │ ├── applyment │ │ │ ├── ApplymentStateQueryResult.java │ │ │ ├── ModifySettlementRequest.java │ │ │ ├── SettlementApplicationResult.java │ │ │ ├── SettlementInfoResult.java │ │ │ ├── SettlementModifyStateQueryResult.java │ │ │ ├── WxPayApplyment4SubCreateRequest.java │ │ │ ├── WxPayApplymentCreateResult.java │ │ │ └── enums │ │ │ │ ├── AccountTypeEnum.java │ │ │ │ ├── ApplymentStateEnum.java │ │ │ │ ├── BankAccountTypeEnum.java │ │ │ │ ├── CertTypeEnum.java │ │ │ │ ├── FinanceTypeEnum.java │ │ │ │ ├── IdTypeEnum.java │ │ │ │ ├── MicroBizTypeEnum.java │ │ │ │ ├── SalesScenesTypeEnum.java │ │ │ │ ├── SettlementVerifyResultEnum.java │ │ │ │ ├── SettlementVerifyStateEnum.java │ │ │ │ └── SubjectTypeEnum.java │ │ ├── bank │ │ │ ├── BankAccountResult.java │ │ │ ├── BankBranchesResult.java │ │ │ ├── BankInfo.java │ │ │ ├── BankingResult.java │ │ │ ├── CitiesResult.java │ │ │ ├── PageLink.java │ │ │ └── ProvincesResult.java │ │ ├── brandmerchanttransfer │ │ │ ├── request │ │ │ │ ├── BrandMerchantBatchesQueryRequest.java │ │ │ │ ├── BrandMerchantDetailsQueryRequest.java │ │ │ │ ├── BrandTransferBatchesRequest.java │ │ │ │ ├── BrandWxBatchesQueryRequest.java │ │ │ │ └── BrandWxDetailsQueryRequest.java │ │ │ └── result │ │ │ │ ├── BrandBatchesQueryResult.java │ │ │ │ ├── BrandDetailsQueryResult.java │ │ │ │ └── BrandTransferBatchesResult.java │ │ ├── businesscircle │ │ │ ├── BusinessCircleNotifyData.java │ │ │ ├── PaidResult.java │ │ │ ├── PointsNotifyRequest.java │ │ │ └── RefundResult.java │ │ ├── complaint │ │ │ ├── ComplaintDetailRequest.java │ │ │ ├── ComplaintDetailResult.java │ │ │ ├── ComplaintNotifyUrlRequest.java │ │ │ ├── ComplaintNotifyUrlResult.java │ │ │ ├── ComplaintRequest.java │ │ │ ├── ComplaintResult.java │ │ │ ├── CompleteRequest.java │ │ │ ├── NegotiationHistoryRequest.java │ │ │ ├── NegotiationHistoryResult.java │ │ │ ├── ResponseRequest.java │ │ │ └── UpdateRefundProgressRequest.java │ │ ├── coupon │ │ │ ├── WxPayCouponInfoQueryRequest.java │ │ │ ├── WxPayCouponInfoQueryResult.java │ │ │ ├── WxPayCouponSendRequest.java │ │ │ ├── WxPayCouponSendResult.java │ │ │ ├── WxPayCouponStockQueryRequest.java │ │ │ └── WxPayCouponStockQueryResult.java │ │ ├── customs │ │ │ ├── DeclarationQueryRequest.java │ │ │ ├── DeclarationQueryResult.java │ │ │ ├── DeclarationRequest.java │ │ │ ├── DeclarationResult.java │ │ │ ├── RedeclareRequest.java │ │ │ ├── RedeclareResult.java │ │ │ ├── VerifyCertificateRequest.java │ │ │ └── VerifyCertificateResult.java │ │ ├── ecommerce │ │ │ ├── AccountCancelApplicationsMediaResult.java │ │ │ ├── AccountCancelApplicationsRequest.java │ │ │ ├── AccountCancelApplicationsResult.java │ │ │ ├── ApplymentsRequest.java │ │ │ ├── ApplymentsResult.java │ │ │ ├── ApplymentsStatusResult.java │ │ │ ├── CombineTransactionsNotifyResult.java │ │ │ ├── CombineTransactionsRequest.java │ │ │ ├── CombineTransactionsResult.java │ │ │ ├── FinishOrderRequest.java │ │ │ ├── FundBalanceResult.java │ │ │ ├── FundBillRequest.java │ │ │ ├── FundBillResult.java │ │ │ ├── NotifyResponse.java │ │ │ ├── PartnerTransactionsCloseRequest.java │ │ │ ├── PartnerTransactionsNotifyResult.java │ │ │ ├── PartnerTransactionsQueryRequest.java │ │ │ ├── PartnerTransactionsRequest.java │ │ │ ├── PartnerTransactionsResult.java │ │ │ ├── ProfitSharingOrdersUnSplitAmountRequest.java │ │ │ ├── ProfitSharingOrdersUnSplitAmountResult.java │ │ │ ├── ProfitSharingQueryRequest.java │ │ │ ├── ProfitSharingReceiverRequest.java │ │ │ ├── ProfitSharingReceiverResult.java │ │ │ ├── ProfitSharingRequest.java │ │ │ ├── ProfitSharingResult.java │ │ │ ├── RefundNotifyResult.java │ │ │ ├── RefundQueryResult.java │ │ │ ├── RefundsRequest.java │ │ │ ├── RefundsResult.java │ │ │ ├── ReturnAdvanceResult.java │ │ │ ├── ReturnOrdersQueryRequest.java │ │ │ ├── ReturnOrdersRequest.java │ │ │ ├── ReturnOrdersResult.java │ │ │ ├── SettlementRequest.java │ │ │ ├── SettlementResult.java │ │ │ ├── SignatureHeader.java │ │ │ ├── SpWithdrawRequest.java │ │ │ ├── SpWithdrawResult.java │ │ │ ├── SpWithdrawStatusResult.java │ │ │ ├── SubWithdrawRequest.java │ │ │ ├── SubWithdrawResult.java │ │ │ ├── SubWithdrawStatusResult.java │ │ │ ├── SubsidiesCancelRequest.java │ │ │ ├── SubsidiesCancelResult.java │ │ │ ├── SubsidiesCreateRequest.java │ │ │ ├── SubsidiesCreateResult.java │ │ │ ├── SubsidiesReturnRequest.java │ │ │ ├── SubsidiesReturnResult.java │ │ │ ├── TradeBillRequest.java │ │ │ ├── TradeBillResult.java │ │ │ ├── TransactionsResult.java │ │ │ └── enums │ │ │ │ ├── FundBillTypeEnum.java │ │ │ │ ├── SpAccountTypeEnum.java │ │ │ │ └── TradeTypeEnum.java │ │ ├── entpay │ │ │ ├── EntPayBankQueryRequest.java │ │ │ ├── EntPayBankQueryResult.java │ │ │ ├── EntPayBankRequest.java │ │ │ ├── EntPayBankResult.java │ │ │ ├── EntPayQueryRequest.java │ │ │ ├── EntPayQueryResult.java │ │ │ ├── EntPayRedpackQueryRequest.java │ │ │ ├── EntPayRedpackQueryResult.java │ │ │ ├── EntPayRedpackRequest.java │ │ │ ├── EntPayRedpackResult.java │ │ │ ├── EntPayRequest.java │ │ │ ├── EntPayResult.java │ │ │ └── GetPublicKeyResult.java │ │ ├── entwxpay │ │ │ └── EntWxEmpPayRequest.java │ │ ├── marketing │ │ │ ├── BusiFavorCallbacksRequest.java │ │ │ ├── BusiFavorCallbacksResult.java │ │ │ ├── BusiFavorCouponCodeRequest.java │ │ │ ├── BusiFavorCouponCodeResult.java │ │ │ ├── BusiFavorCouponsAssociateRequest.java │ │ │ ├── BusiFavorCouponsAssociateResult.java │ │ │ ├── BusiFavorCouponsDeactivateRequest.java │ │ │ ├── BusiFavorCouponsDeactivateResult.java │ │ │ ├── BusiFavorCouponsReturnRequest.java │ │ │ ├── BusiFavorCouponsReturnResult.java │ │ │ ├── BusiFavorCouponsUrlRequest.java │ │ │ ├── BusiFavorCouponsUseRequest.java │ │ │ ├── BusiFavorCouponsUseResult.java │ │ │ ├── BusiFavorNotifyRequest.java │ │ │ ├── BusiFavorNotifyResult.java │ │ │ ├── BusiFavorQueryOneUserCouponsRequest.java │ │ │ ├── BusiFavorQueryOneUserCouponsResult.java │ │ │ ├── BusiFavorQueryUserCouponsRequest.java │ │ │ ├── BusiFavorQueryUserCouponsResult.java │ │ │ ├── BusiFavorStocksBudgetRequest.java │ │ │ ├── BusiFavorStocksBudgetResult.java │ │ │ ├── BusiFavorStocksCreateRequest.java │ │ │ ├── BusiFavorStocksCreateResult.java │ │ │ ├── BusiFavorStocksGetResult.java │ │ │ ├── BusiFavorStocksUserGetResult.java │ │ │ ├── BusiFavorSubsidyRequest.java │ │ │ ├── BusiFavorSubsidyResult.java │ │ │ ├── FavorCallbacksSaveRequest.java │ │ │ ├── FavorCallbacksSaveResult.java │ │ │ ├── FavorCouponsCreateRequest.java │ │ │ ├── FavorCouponsCreateResult.java │ │ │ ├── FavorCouponsGetResult.java │ │ │ ├── FavorCouponsQueryRequest.java │ │ │ ├── FavorCouponsQueryResult.java │ │ │ ├── FavorCouponsUseResult.java │ │ │ ├── FavorStocksCreateRequest.java │ │ │ ├── FavorStocksCreateResult.java │ │ │ ├── FavorStocksFlowGetResult.java │ │ │ ├── FavorStocksGetResult.java │ │ │ ├── FavorStocksItemsGetResult.java │ │ │ ├── FavorStocksMerchantsGetResult.java │ │ │ ├── FavorStocksPauseResult.java │ │ │ ├── FavorStocksQueryRequest.java │ │ │ ├── FavorStocksQueryResult.java │ │ │ ├── FavorStocksRestartResult.java │ │ │ ├── FavorStocksSetRequest.java │ │ │ ├── FavorStocksStartResult.java │ │ │ ├── UseNotifyData.java │ │ │ ├── busifavor │ │ │ │ ├── AvailableWeek.java │ │ │ │ ├── CouponAvailableTime.java │ │ │ │ ├── CouponUseRule.java │ │ │ │ ├── CustomEntrance.java │ │ │ │ ├── DiscountCoupon.java │ │ │ │ ├── DisplayPatternInfo.java │ │ │ │ ├── ExchangeCoupon.java │ │ │ │ ├── FixedNormalCoupon.java │ │ │ │ ├── IrregularyAvaliableTime.java │ │ │ │ ├── NotifyConfig.java │ │ │ │ └── StockSendRule.java │ │ │ ├── enums │ │ │ │ ├── BackgroundColorEnum.java │ │ │ │ ├── JumpTargetEnum.java │ │ │ │ ├── StockTypeEnum.java │ │ │ │ └── TradeTypeEnum.java │ │ │ ├── payroll │ │ │ │ ├── AuthRecordRequest.java │ │ │ │ ├── AuthRecordResult.java │ │ │ │ ├── AuthenticationsResult.java │ │ │ │ ├── MerchantIncomeRecordsRequest.java │ │ │ │ ├── MerchantIncomeRecordsResult.java │ │ │ │ ├── PartnerIncomeRecordsRequest.java │ │ │ │ ├── PartnerIncomeRecordsResult.java │ │ │ │ ├── PreOrderRequest.java │ │ │ │ ├── PreOrderResult.java │ │ │ │ ├── PreOrderWithAuthRequest.java │ │ │ │ ├── PreOrderWithAuthResult.java │ │ │ │ ├── RelationsRequest.java │ │ │ │ ├── RelationsResult.java │ │ │ │ ├── SubFundFlowBillResult.java │ │ │ │ ├── TokensRequest.java │ │ │ │ └── TokensResult.java │ │ │ └── transfer │ │ │ │ ├── BatchDetailsRequest.java │ │ │ │ ├── BatchDetailsResult.java │ │ │ │ ├── BatchNumberRequest.java │ │ │ │ ├── BatchNumberResult.java │ │ │ │ ├── BillReceiptResult.java │ │ │ │ ├── DownloadRequest.java │ │ │ │ ├── ElectronicReceiptsRequest.java │ │ │ │ ├── ElectronicReceiptsResult.java │ │ │ │ ├── MerchantBatchRequest.java │ │ │ │ ├── PartnerTransferRequest.java │ │ │ │ ├── PartnerTransferResult.java │ │ │ │ └── ReceiptBillRequest.java │ │ ├── media │ │ │ ├── ImageUploadResult.java │ │ │ └── MarketingImageUploadResult.java │ │ ├── merchanttransfer │ │ │ ├── BatchesQueryResult.java │ │ │ ├── DetailElectronicBillRequest.java │ │ │ ├── DetailElectronicBillResult.java │ │ │ ├── DetailsQueryResult.java │ │ │ ├── ElectronicBillApplyRequest.java │ │ │ ├── ElectronicBillResult.java │ │ │ ├── MerchantBatchesQueryRequest.java │ │ │ ├── MerchantDetailsQueryRequest.java │ │ │ ├── TransferCreateRequest.java │ │ │ ├── TransferCreateResult.java │ │ │ ├── WxBatchesQueryRequest.java │ │ │ └── WxDetailsQueryRequest.java │ │ ├── notify │ │ │ ├── CombineNotifyResult.java │ │ │ ├── ComplaintNotifyResult.java │ │ │ ├── OriginNotifyResponse.java │ │ │ ├── SignatureHeader.java │ │ │ ├── WxPayBaseNotifyV3Result.java │ │ │ ├── WxPayNotifyResponse.java │ │ │ ├── WxPayNotifyV3Response.java │ │ │ ├── WxPayNotifyV3Result.java │ │ │ ├── WxPayOrderNotifyCoupon.java │ │ │ ├── WxPayOrderNotifyResult.java │ │ │ ├── WxPayPartnerNotifyV3Result.java │ │ │ ├── WxPayPartnerRefundNotifyV3Result.java │ │ │ ├── WxPayRefundNotifyResult.java │ │ │ ├── WxPayRefundNotifyV3Result.java │ │ │ ├── WxPayTransferBatchesNotifyV3Result.java │ │ │ └── WxScanPayNotifyResult.java │ │ ├── order │ │ │ ├── WxPayAppOrderResult.java │ │ │ ├── WxPayMpOrderResult.java │ │ │ ├── WxPayMwebOrderResult.java │ │ │ └── WxPayNativeOrderResult.java │ │ ├── payscore │ │ │ ├── Detail.java │ │ │ ├── Device.java │ │ │ ├── GoodsDetail.java │ │ │ ├── Location.java │ │ │ ├── PartnerUserSignPlanDetail.java │ │ │ ├── PartnerUserSignPlanEntity.java │ │ │ ├── PayScoreNotifyData.java │ │ │ ├── PayScorePlanDetail.java │ │ │ ├── PayScorePlanDetailRequest.java │ │ │ ├── PayScorePlanDetailResult.java │ │ │ ├── PostDiscount.java │ │ │ ├── PostPayment.java │ │ │ ├── PromotionDetail.java │ │ │ ├── RiskFund.java │ │ │ ├── SyncDetail.java │ │ │ ├── TimeRange.java │ │ │ ├── UserAuthorizationStatusNotifyResult.java │ │ │ ├── UserSignPlanDetailMerchatNo.java │ │ │ ├── WxPartnerPayScoreRequest.java │ │ │ ├── WxPartnerPayScoreResult.java │ │ │ ├── WxPartnerPayScoreSignPlanRequest.java │ │ │ ├── WxPartnerPayScoreSignPlanResult.java │ │ │ ├── WxPartnerPayScoreUserSignPlanResult.java │ │ │ ├── WxPartnerUserAuthorizationStatusNotifyResult.java │ │ │ ├── WxPayScoreRequest.java │ │ │ ├── WxPayScoreResult.java │ │ │ └── enums │ │ │ │ ├── SignPlanServiceOrderPlanDetailStateEnum.java │ │ │ │ ├── SignPlanServiceOrderStateEnum.java │ │ │ │ └── UserSignPlanCancelSignTypeEnum.java │ │ ├── profitsharing │ │ │ ├── Receiver.java │ │ │ ├── ReceiverList.java │ │ │ ├── notify │ │ │ │ ├── ProfitSharingNotifyV3Response.java │ │ │ │ └── ProfitSharingNotifyV3Result.java │ │ │ ├── request │ │ │ │ ├── ProfitSharingBillV3Request.java │ │ │ │ ├── ProfitSharingMerchantRatioQueryRequest.java │ │ │ │ ├── ProfitSharingOrderAmountQueryRequest.java │ │ │ │ ├── ProfitSharingQueryRequest.java │ │ │ │ ├── ProfitSharingQueryV3Request.java │ │ │ │ ├── ProfitSharingReceiverRequest.java │ │ │ │ ├── ProfitSharingReceiverV3Request.java │ │ │ │ ├── ProfitSharingRequest.java │ │ │ │ ├── ProfitSharingReturnQueryRequest.java │ │ │ │ ├── ProfitSharingReturnRequest.java │ │ │ │ ├── ProfitSharingReturnV3Request.java │ │ │ │ ├── ProfitSharingUnfreezeRequest.java │ │ │ │ ├── ProfitSharingUnfreezeV3Request.java │ │ │ │ └── ProfitSharingV3Request.java │ │ │ └── result │ │ │ │ ├── ProfitSharingBillV3Result.java │ │ │ │ ├── ProfitSharingMerchantRatioQueryResult.java │ │ │ │ ├── ProfitSharingMerchantRatioQueryV3Result.java │ │ │ │ ├── ProfitSharingOrderAmountQueryResult.java │ │ │ │ ├── ProfitSharingOrderAmountQueryV3Result.java │ │ │ │ ├── ProfitSharingQueryResult.java │ │ │ │ ├── ProfitSharingReceiverResult.java │ │ │ │ ├── ProfitSharingReceiverV3Result.java │ │ │ │ ├── ProfitSharingResult.java │ │ │ │ ├── ProfitSharingReturnResult.java │ │ │ │ ├── ProfitSharingReturnV3Result.java │ │ │ │ ├── ProfitSharingUnfreezeV3Result.java │ │ │ │ └── ProfitSharingV3Result.java │ │ ├── request │ │ │ ├── BaseWxPayRequest.java │ │ │ ├── CombineCloseRequest.java │ │ │ ├── CombineTransactionsRequest.java │ │ │ ├── WxH5EntrustRequest.java │ │ │ ├── WxMaEntrustRequest.java │ │ │ ├── WxMpEntrustRequest.java │ │ │ ├── WxPayApplyFundFlowBillV3Request.java │ │ │ ├── WxPayApplyTradeBillV3Request.java │ │ │ ├── WxPayAuthcode2OpenidRequest.java │ │ │ ├── WxPayCodepayRequest.java │ │ │ ├── WxPayDefaultRequest.java │ │ │ ├── WxPayDownloadBillRequest.java │ │ │ ├── WxPayDownloadFundFlowRequest.java │ │ │ ├── WxPayEntrustRequest.java │ │ │ ├── WxPayFaceAuthInfoRequest.java │ │ │ ├── WxPayFacepayRequest.java │ │ │ ├── WxPayMicropayRequest.java │ │ │ ├── WxPayOrderCloseRequest.java │ │ │ ├── WxPayOrderCloseV3Request.java │ │ │ ├── WxPayOrderQueryRequest.java │ │ │ ├── WxPayOrderQueryV3Request.java │ │ │ ├── WxPayOrderReverseRequest.java │ │ │ ├── WxPayOrderReverseV3Request.java │ │ │ ├── WxPayPartnerOrderCloseV3Request.java │ │ │ ├── WxPayPartnerOrderQueryV3Request.java │ │ │ ├── WxPayPartnerRefundV3Request.java │ │ │ ├── WxPayPartnerUnifiedOrderV3Request.java │ │ │ ├── WxPayQueryCommentRequest.java │ │ │ ├── WxPayQueryExchangeRateRequest.java │ │ │ ├── WxPayRedpackQueryRequest.java │ │ │ ├── WxPayRefundQueryRequest.java │ │ │ ├── WxPayRefundQueryV3Request.java │ │ │ ├── WxPayRefundRequest.java │ │ │ ├── WxPayRefundV3Request.java │ │ │ ├── WxPayReportRequest.java │ │ │ ├── WxPaySendMiniProgramRedpackRequest.java │ │ │ ├── WxPaySendRedpackRequest.java │ │ │ ├── WxPayShorturlRequest.java │ │ │ ├── WxPayUnifiedOrderRequest.java │ │ │ ├── WxPayUnifiedOrderV3Request.java │ │ │ ├── WxPreWithholdRequest.java │ │ │ ├── WxSignQueryRequest.java │ │ │ ├── WxTerminatedContractRequest.java │ │ │ ├── WxWithholdOrderQueryRequest.java │ │ │ └── WxWithholdRequest.java │ │ ├── result │ │ │ ├── BaseWxPayResult.java │ │ │ ├── CombineQueryResult.java │ │ │ ├── CombineTransactionsResult.java │ │ │ ├── WxH5EntrustResult.java │ │ │ ├── WxPayApplyBillV3Result.java │ │ │ ├── WxPayAuthcode2OpenidResult.java │ │ │ ├── WxPayBillInfo.java │ │ │ ├── WxPayBillResult.java │ │ │ ├── WxPayCodepayResult.java │ │ │ ├── WxPayCommonResult.java │ │ │ ├── WxPayEntrustResult.java │ │ │ ├── WxPayFaceAuthInfoResult.java │ │ │ ├── WxPayFacepayResult.java │ │ │ ├── WxPayFundFlowBaseResult.java │ │ │ ├── WxPayFundFlowResult.java │ │ │ ├── WxPayMicropayResult.java │ │ │ ├── WxPayOrderCloseResult.java │ │ │ ├── WxPayOrderQueryResult.java │ │ │ ├── WxPayOrderQueryV3Result.java │ │ │ ├── WxPayOrderReverseResult.java │ │ │ ├── WxPayOrderReverseV3Result.java │ │ │ ├── WxPayPartnerOrderQueryV3Result.java │ │ │ ├── WxPayQueryExchangeRateResult.java │ │ │ ├── WxPayRedpackQueryResult.java │ │ │ ├── WxPayRefundCouponInfo.java │ │ │ ├── WxPayRefundPromotionDetail.java │ │ │ ├── WxPayRefundQueryResult.java │ │ │ ├── WxPayRefundQueryV3Result.java │ │ │ ├── WxPayRefundResult.java │ │ │ ├── WxPayRefundV3Result.java │ │ │ ├── WxPaySandboxSignKeyResult.java │ │ │ ├── WxPaySendMiniProgramRedpackResult.java │ │ │ ├── WxPaySendRedpackResult.java │ │ │ ├── WxPayShorturlResult.java │ │ │ ├── WxPayUnifiedOrderResult.java │ │ │ ├── WxPayUnifiedOrderV3Result.java │ │ │ ├── WxSignQueryResult.java │ │ │ ├── WxSignStatusNotifyResult.java │ │ │ ├── WxTerminationContractResult.java │ │ │ ├── WxWithholdNotifyResult.java │ │ │ ├── WxWithholdOrderQueryResult.java │ │ │ ├── WxWithholdResult.java │ │ │ └── enums │ │ │ │ └── TradeTypeEnum.java │ │ └── transfer │ │ │ ├── QueryTransferBatchesRequest.java │ │ │ ├── QueryTransferBatchesResult.java │ │ │ ├── TransferBatchDetailResult.java │ │ │ ├── TransferBatchesRequest.java │ │ │ ├── TransferBatchesResult.java │ │ │ ├── TransferBillsCancelResult.java │ │ │ ├── TransferBillsGetResult.java │ │ │ ├── TransferBillsNotifyResult.java │ │ │ ├── TransferBillsRequest.java │ │ │ ├── TransferBillsResult.java │ │ │ └── TransferNotifyResult.java │ │ ├── config │ │ ├── HttpClientBuilderCustomizer.java │ │ ├── VerifierBuilder.java │ │ ├── WxPayConfig.java │ │ ├── WxPayConfigHolder.java │ │ └── WxPayHttpProxy.java │ │ ├── constant │ │ ├── WxPayConstants.java │ │ └── WxPayErrorCode.java │ │ ├── converter │ │ └── WxPayOrderNotifyResultConverter.java │ │ ├── exception │ │ ├── WxPayException.java │ │ └── WxSignTestException.java │ │ ├── service │ │ ├── Apply4SubjectConfirmService.java │ │ ├── Applyment4SubService.java │ │ ├── BankService.java │ │ ├── BrandMerchantTransferService.java │ │ ├── BusinessCircleService.java │ │ ├── ComplaintService.java │ │ ├── CustomDeclarationService.java │ │ ├── EcommerceService.java │ │ ├── EntPayService.java │ │ ├── MarketingBusiFavorService.java │ │ ├── MarketingFavorService.java │ │ ├── MarketingMediaService.java │ │ ├── MerchantMediaService.java │ │ ├── MerchantTransferService.java │ │ ├── PartnerPayScoreService.java │ │ ├── PartnerPayScoreSignPlanService.java │ │ ├── PartnerTransferService.java │ │ ├── PayScoreService.java │ │ ├── PayrollService.java │ │ ├── ProfitSharingService.java │ │ ├── RedpackService.java │ │ ├── TransferService.java │ │ ├── WxEntrustPapService.java │ │ ├── WxPayService.java │ │ └── impl │ │ │ ├── Apply4SubjectConfirmServiceImpl.java │ │ │ ├── Applyment4SubServiceImpl.java │ │ │ ├── BankServiceImpl.java │ │ │ ├── BaseWxPayServiceImpl.java │ │ │ ├── BrandMerchantTransferServiceImpl.java │ │ │ ├── BusinessCircleServiceImpl.java │ │ │ ├── ComplaintServiceImpl.java │ │ │ ├── CustomDeclarationServiceImpl.java │ │ │ ├── EcommerceServiceImpl.java │ │ │ ├── EntPayServiceImpl.java │ │ │ ├── MarketingBusiFavorServiceImpl.java │ │ │ ├── MarketingFavorServiceImpl.java │ │ │ ├── MarketingMediaServiceImpl.java │ │ │ ├── MerchantMediaServiceImpl.java │ │ │ ├── MerchantTransferServiceImpl.java │ │ │ ├── PartnerPayScoreServiceImpl.java │ │ │ ├── PartnerPayScoreSignPlanServiceImpl.java │ │ │ ├── PartnerTransferServiceImpl.java │ │ │ ├── PayScoreServiceImpl.java │ │ │ ├── PayrollServiceImpl.java │ │ │ ├── ProfitSharingServiceImpl.java │ │ │ ├── RedpackServiceImpl.java │ │ │ ├── TransferServiceImpl.java │ │ │ ├── WxEntrustPapServiceImpl.java │ │ │ ├── WxPayServiceApacheHttpImpl.java │ │ │ ├── WxPayServiceHttpComponentsImpl.java │ │ │ ├── WxPayServiceImpl.java │ │ │ └── WxPayServiceJoddHttpImpl.java │ │ ├── util │ │ ├── HttpProxyUtils.java │ │ ├── RequestUtils.java │ │ ├── ResourcesUtils.java │ │ ├── SignUtils.java │ │ ├── XmlConfig.java │ │ └── ZipUtils.java │ │ └── v3 │ │ ├── Credentials.java │ │ ├── SignatureExec.java │ │ ├── SpecEncrypt.java │ │ ├── Validator.java │ │ ├── WechatPayUploadHttpPost.java │ │ ├── WxPayV3DownloadHttpGet.java │ │ ├── WxPayV3HttpClientBuilder.java │ │ ├── auth │ │ ├── AutoUpdateCertificatesVerifier.java │ │ ├── CertificatesVerifier.java │ │ ├── PrivateKeySigner.java │ │ ├── PublicCertificateVerifier.java │ │ ├── Signer.java │ │ ├── Verifier.java │ │ ├── WxPayCredentials.java │ │ ├── WxPayValidator.java │ │ └── X509PublicCertificate.java │ │ └── util │ │ ├── AesUtils.java │ │ ├── PemUtils.java │ │ ├── RsaCryptoUtil.java │ │ └── SignUtils.java │ └── test │ ├── java │ └── com │ │ └── github │ │ └── binarywang │ │ └── wxpay │ │ ├── bean │ │ ├── entpay │ │ │ └── EntPayRequestTest.java │ │ ├── notify │ │ │ ├── WxPayNotifyResponseTest.java │ │ │ ├── WxPayOrderNotifyResultTest.java │ │ │ ├── WxPayRefundNotifyResultTest.java │ │ │ └── WxScanPayNotifyResultTest.java │ │ ├── payscore │ │ │ ├── WxPartnerPayScoreRequestTest.java │ │ │ └── WxPayScoreRequestTest.java │ │ ├── profitsharing │ │ │ ├── ProfitSharingQueryResultTest.java │ │ │ └── ProfitSharingV3ResultTest.java │ │ ├── request │ │ │ └── WxPayRefundRequestTest.java │ │ └── result │ │ │ ├── BaseWxPayResultTest.java │ │ │ ├── WxPayBillResultTest.java │ │ │ ├── WxPayOrderQueryResultTest.java │ │ │ ├── WxPayRedpackQueryResultTest.java │ │ │ ├── WxPayRefundQueryResultTest.java │ │ │ ├── WxPayRefundResultTest.java │ │ │ └── WxPaySendRedpackResultTest.java │ │ ├── config │ │ ├── CustomizedWxPayConfigTest.java │ │ └── WxPayConfigTest.java │ │ ├── service │ │ └── impl │ │ │ ├── Applyment4SubServiceImplTest.java │ │ │ ├── BaseWxPayServiceImplTest.java │ │ │ ├── BrandMerchantTransferServiceImplTest.java │ │ │ ├── BusinessCircleServiceImplTest.java │ │ │ ├── ComplaintServiceImplTest.java │ │ │ ├── CustomDeclarationServiceImplTest.java │ │ │ ├── EcommerceServiceImplTest.java │ │ │ ├── EntPayServiceImplTest.java │ │ │ ├── MarketingBusiFavorServiceImplTest.java │ │ │ ├── MarketingFavorServiceImplTest.java │ │ │ ├── MarketingMediaServiceImplTest.java │ │ │ ├── MerchantMediaServiceImplTest.java │ │ │ ├── MerchantTransferServiceImplTest.java │ │ │ ├── PartnerPayScoreSignPlanServiceImplTest.java │ │ │ ├── PartnerTransferServiceImplTest.java │ │ │ ├── PayScoreServiceImplTest.java │ │ │ ├── PayrollServiceImplTest.java │ │ │ ├── ProfitSharingServiceImplTest.java │ │ │ ├── RedpackServiceImplTest.java │ │ │ ├── TransferServiceImplTest.java │ │ │ └── WxEntrustPapServiceTest.java │ │ ├── testbase │ │ ├── ApiTestModule.java │ │ ├── CustomizedApiTestModule.java │ │ └── XmlWxPayConfig.java │ │ ├── util │ │ └── SignUtilsTest.java │ │ └── v3 │ │ └── auth │ │ └── AutoUpdateCertificatesVerifierTest.java │ └── resources │ ├── .gitignore │ ├── logback-test.xml │ └── test-config.sample.xml └── weixin-java-qidian ├── pom.xml └── src ├── main └── java │ └── me │ └── chanjar │ └── weixin │ └── qidian │ ├── api │ ├── WxQidianCallDataService.java │ ├── WxQidianDialService.java │ ├── WxQidianService.java │ └── impl │ │ ├── BaseWxQidianServiceImpl.java │ │ ├── WxQidianCallDataServiceImpl.java │ │ ├── WxQidianDialServiceImpl.java │ │ ├── WxQidianServiceHttpClientImpl.java │ │ ├── WxQidianServiceHttpComponentsImpl.java │ │ ├── WxQidianServiceImpl.java │ │ ├── WxQidianServiceJoddHttpImpl.java │ │ └── WxQidianServiceOkHttpImpl.java │ ├── bean │ ├── WxQidianHostConfig.java │ ├── call │ │ ├── GetSwitchBoardListResponse.java │ │ ├── SwitchBoard.java │ │ └── SwitchBoardList.java │ ├── common │ │ └── QidianResponse.java │ └── dial │ │ ├── IVRDialRequest.java │ │ ├── IVRDialResponse.java │ │ ├── IVRListResponse.java │ │ └── Ivr.java │ ├── config │ ├── WxQidianConfigStorage.java │ └── impl │ │ ├── WxQidianDefaultConfigImpl.java │ │ ├── WxQidianRedisConfigImpl.java │ │ └── WxQidianRedissonConfigImpl.java │ ├── enums │ └── WxQidianApiUrl.java │ └── util │ ├── WxQidianConfigStorageHolder.java │ └── json │ └── WxQidianGsonBuilder.java └── test ├── java └── me │ └── chanjar │ └── weixin │ └── qidian │ └── api │ ├── WxMpBusyRetryTest.java │ ├── WxMpJsAPITest.java │ ├── impl │ ├── BaseWxQidianServiceImplTest.java │ └── WxQidianDialServiceImplTest.java │ └── test │ ├── ApiTestModule.java │ └── TestConfigStorage.java └── resources ├── logback-test.xml ├── test-config.sample.xml └── testng.xml /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | jobs: 3 | build: 4 | docker: 5 | - image: cimg/openjdk:11.0 6 | steps: 7 | - checkout 8 | - run: 9 | name: Build 10 | command: mvn -B -DskipTests clean package -Dcheckstyle.skip=true 11 | 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig: http://editorconfig.org/ 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | 16 | -------------------------------------------------------------------------------- /.gitee/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 强烈建议大家到 `github` 相关页面提交问题,方便统一查询管理,具体页面地址:https://github.com/binarywang/WxJava/issues 2 | 3 | 当然如果必须在这里提问,请务必按以下格式填写,谢谢配合~ 4 | 5 | # 提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,尤其是常见问题部分。完成内容后,请务必移除包括本句在内的无用内容,以免影响阅读,谢谢合作~ 6 | # 另外如果确认属于bug,而且已明确如何修复,请参考贡献指南直接提交PR,省的浪费时间在这里描述问题,非常感谢配合 7 | 8 | ### 简要描述 9 | __简单概括描述下你所遇到的问题。__ 10 | 11 | ### 模块版本情况 12 | * `WxJava` 模块名: 13 | * `WxJava` 版本号: 14 | 15 | ### 详细描述 16 | __尽量详细描述。请不要使用截图,尽量使用文字描述,代码直接贴上来,日志则请附在后面所示区域。__ 17 | 18 | ### 日志 19 | __将日志放在 [`Pastebin`](https://paste.ubuntu.com/) 或者其他地方,并将其url地址贴在这里__ 20 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [binarywang] 4 | custom: https://github.com/Wechat-Group/WxJava/blob/master/images/qrcodes/wepay.jpg?raw=true 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug报告 3 | about: 本项目仅对最新版本进行维护,使用老版本出现问题的盆友,请先升级到最新版本,升级完后如果发现bug依然存在,请继续填写此issue。 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # 提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,尤其是常见问题部分。完成内容后,请务必移除包括本句在内的无用内容,以免影响阅读,否则直接关闭,谢谢合作~ 11 | 12 | ## 另外如果确认属于bug,而且已明确如何修复,请参考贡献指南直接提交PR,省的浪费时间在这里描述问题,非常感谢配合 13 | 14 | ### 简要描述 15 | __请简单概括描述下你所遇到的问题。__ 16 | 17 | ### 模块版本情况 18 | * WxJava 模块名: 19 | * WxJava 版本号:(旧版本不予支持,谢谢配合) 20 | 21 | ### 详细描述 22 | __尽量详细描述。请不要使用截图,尽量使用文字描述,代码直接贴上来,日志则请附在后面所示区域。__ 23 | 24 | ### 日志 25 | __如果日志不多,直接使用md代码引用格式贴在此处,否则如果太长,请将日志放在 [pastebin](https://paste.ubuntu.com/) 或者其他地方,然后将其url地址贴在这里__ 26 | ``` 27 | 日志请写于此处 28 | ``` 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 请求添加新功能 3 | about: 如果有什么新功能需要添加,请告诉我们 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | # 提问前,请确保阅读过项目首页说明以及wiki开发文档相关内容,完成内容后,请务必移除包括本句在内的无用内容,以免影响他人阅读,否则直接关闭,谢谢合作~ 11 | 12 | ### 简要描述 13 | 14 | 15 | ### 官方文档地址 16 | __请提供所需功能对应的微信官方文档地址以便进行确认。__ 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | 3 | jdk: 4 | - openjdk8 5 | script: "mvn clean package -DskipTests=true -Dcheckstyle.skip=true" 6 | 7 | branches: 8 | only: 9 | - develop 10 | 11 | cache: 12 | directories: 13 | - '$HOME/.m2/repository' 14 | 15 | notifications: 16 | email: 17 | - a@binarywang.com 18 | -------------------------------------------------------------------------------- /images/api-signature/api-signature-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/api-signature/api-signature-1.png -------------------------------------------------------------------------------- /images/api-signature/api-signature-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/api-signature/api-signature-2.png -------------------------------------------------------------------------------- /images/banners/aliyun.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/banners/aliyun.jpg -------------------------------------------------------------------------------- /images/banners/coding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/banners/coding.jpg -------------------------------------------------------------------------------- /images/banners/tcloud.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/banners/tcloud.jpg -------------------------------------------------------------------------------- /images/banners/wiki.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/banners/wiki.jpg -------------------------------------------------------------------------------- /images/qrcodes/alipay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/qrcodes/alipay.jpg -------------------------------------------------------------------------------- /images/qrcodes/cp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/qrcodes/cp.png -------------------------------------------------------------------------------- /images/qrcodes/ding.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/qrcodes/ding.jpg -------------------------------------------------------------------------------- /images/qrcodes/mp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/qrcodes/mp.png -------------------------------------------------------------------------------- /images/qrcodes/wepay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/images/qrcodes/wepay.jpg -------------------------------------------------------------------------------- /others/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip -------------------------------------------------------------------------------- /others/check-dependency-updates.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ./mvnw org.codehaus.mojo:versions-maven-plugin:display-dependency-updates 3 | -------------------------------------------------------------------------------- /others/check-plugin-updates.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ./mvnw org.codehaus.mojo:versions-maven-plugin:display-plugin-updates 3 | -------------------------------------------------------------------------------- /others/check-property-updates.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | ./mvnw org.codehaus.mojo:versions-maven-plugin:display-property-updates 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-multi-solon-plugin/src/main/java/com/binarywang/solon/wxjava/channel/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.channel.enums; 2 | 3 | /** 4 | * httpclient类型 5 | * 6 | * @author Winnie 7 | * @date 2024/9/13 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient 12 | */ 13 | HTTP_CLIENT, 14 | /** 15 | * HttpComponents 16 | */ 17 | HTTP_COMPONENTS 18 | // WxChannelServiceOkHttpImpl 实现经测试无法正常完成业务固暂不支持OK_HTTP方式 19 | // /** 20 | // * OkHttp. 21 | // */ 22 | // OK_HTTP, 23 | } 24 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-multi-solon-plugin/src/main/java/com/binarywang/solon/wxjava/channel/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.channel.enums; 2 | 3 | /** 4 | * storage类型 5 | * 6 | * @author Winnie 7 | * @date 2024/9/13 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存 12 | */ 13 | MEMORY, 14 | /** 15 | * redis(JedisClient) 16 | */ 17 | JEDIS, 18 | /** 19 | * redis(Redisson) 20 | */ 21 | REDISSON, 22 | /** 23 | * redis(RedisTemplate) 24 | */ 25 | REDIS_TEMPLATE 26 | } 27 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-multi-solon-plugin/src/main/resources/META-INF/solon/wx-java-multi-channel-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.channel.integration.WxChannelMultiPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-multi-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-solon-plugin/src/main/java/com/binarywang/solon/wxjava/channel/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.channel.enums; 2 | 3 | /** 4 | * httpclient类型 5 | * 6 | * @author Zeyes 7 | */ 8 | public enum HttpClientType { 9 | /** 10 | * HttpClient 11 | */ 12 | HttpClient 13 | } 14 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-solon-plugin/src/main/java/com/binarywang/solon/wxjava/channel/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.channel.enums; 2 | 3 | /** 4 | * storage类型 5 | * 6 | * @author Zeyes 7 | */ 8 | public enum StorageType { 9 | /** 10 | * 内存 11 | */ 12 | Memory, 13 | /** 14 | * redis(JedisClient) 15 | */ 16 | Jedis, 17 | /** 18 | * redis(Redisson) 19 | */ 20 | Redisson, 21 | /** 22 | * redis(RedisTemplate) 23 | */ 24 | RedisTemplate 25 | } 26 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-solon-plugin/src/main/resources/META-INF/solon/wx-java-channel-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.channel.integration.WxChannelPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-channel-solon-plugin/src/test/resources/app.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/solon-plugins/wx-java-channel-solon-plugin/src/test/resources/app.yml -------------------------------------------------------------------------------- /solon-plugins/wx-java-cp-multi-solon-plugin/src/main/resources/META-INF/solon/wx-java-cp-multi-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.cp_multi.integration.WxCpMultiPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-cp-multi-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-cp-solon-plugin/src/main/resources/META-INF/solon/wx-java-cp-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.cp.integration.WxCpPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-cp-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-multi-solon-plugin/src/main/resources/META-INF/solon/wx-java-miniapp-multi-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.miniapp.integration.WxMiniappMultiPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-multi-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-solon-plugin/src/main/java/com/binarywang/solon/wxjava/miniapp/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.miniapp.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-05-25 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-solon-plugin/src/main/java/com/binarywang/solon/wxjava/miniapp/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.miniapp.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-05-25 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-solon-plugin/src/main/resources/META-INF/solon/wx-java-miniapp-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.miniapp.integration.WxMiniappPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-miniapp-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-multi-solon-plugin/src/main/resources/META-INF/solon/wx-java-mp-multi-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.mp_multi.integration.WxMpMultiPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-multi-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/main/java/com/binarywang/solon/wxjava/mp/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.mp.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/main/java/com/binarywang/solon/wxjava/mp/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.mp.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/main/java/com/binarywang/solon/wxjava/mp/properties/HostConfig.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.mp.properties; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class HostConfig implements Serializable { 9 | 10 | private static final long serialVersionUID = -4172767630740346001L; 11 | 12 | /** 13 | * 对应于:https://api.weixin.qq.com 14 | */ 15 | private String apiHost; 16 | 17 | /** 18 | * 对应于:https://open.weixin.qq.com 19 | */ 20 | private String openHost; 21 | 22 | /** 23 | * 对应于:https://mp.weixin.qq.com 24 | */ 25 | private String mpHost; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/main/resources/META-INF/solon/wx-java-mp-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.mp.integration.WxMpPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-mp-solon-plugin/src/test/resources/app.properties: -------------------------------------------------------------------------------- 1 | # ?????(??) 2 | wx.mp.app-id=appId 3 | wx.mp.secret=@secret 4 | wx.mp.token=@token 5 | wx.mp.aes-key=@aesKey 6 | wx.mp.use-stable-access-token=@useStableAccessToken 7 | # ????redis(??) # ????: Memory(??), Jedis, RedisTemplate 8 | wx.mp.config-storage.type=memory 9 | wx.mp.config-storage.key-prefix=wx 10 | wx.mp.config-storage.redis.host=127.0.0.1 11 | wx.mp.config-storage.redis.port=6379 12 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-open-solon-plugin/src/main/resources/META-INF/solon/wx-java-open-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.open.integration.WxOpenPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-open-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-open-solon-plugin/src/test/resources/app.properties: -------------------------------------------------------------------------------- 1 | # ?????(??) 2 | wx.open.appId = appId 3 | wx.open.secret = @secret 4 | wx.open.token = @token 5 | wx.open.aesKey = @aesKey 6 | # ????redis(??) 7 | # ???????(JedisPool, RedissonClient), ????wx.open.config-storage.redis.host, ????????redis???? 8 | wx.open.config-storage.type = redis # ????: memory(??), redis(jedis), jedis, redisson, redistemplate 9 | wx.open.config-storage.key-prefix = wx # ??redis????: wx(??) 10 | wx.open.config-storage.redis.host = 127.0.0.1 11 | wx.open.config-storage.redis.port = 6379 12 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-pay-solon-plugin/src/main/resources/META-INF/solon/wx-java-pay-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.pay.integration.WxPayPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-pay-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-pay-solon-plugin/src/test/resources/app.yml: -------------------------------------------------------------------------------- 1 | wx: 2 | pay: 3 | appId: 4 | mchId: 5 | mchKey: 6 | keyPath: 7 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/main/java/com/binarywang/solon/wxjava/qidian/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.qidian.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/main/java/com/binarywang/solon/wxjava/qidian/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.qidian.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/main/java/com/binarywang/solon/wxjava/qidian/properties/HostConfig.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.solon.wxjava.qidian.properties; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class HostConfig implements Serializable { 9 | 10 | private static final long serialVersionUID = -4172767630740346001L; 11 | 12 | private String apiHost; 13 | 14 | private String openHost; 15 | 16 | private String qidianHost; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/main/resources/META-INF/solon/wx-java-qidian-solon-plugin.properties: -------------------------------------------------------------------------------- 1 | solon.plugin=com.binarywang.solon.wxjava.qidian.integration.WxQidianPluginImpl 2 | solon.plugin.priority=10 3 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/test/java/features/test/LoadTest.java: -------------------------------------------------------------------------------- 1 | package features.test; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.noear.solon.test.SolonTest; 5 | 6 | /** 7 | * @author noear 2024/9/4 created 8 | */ 9 | @SolonTest 10 | public class LoadTest { 11 | @Test 12 | public void load(){ 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /solon-plugins/wx-java-qidian-solon-plugin/src/test/resources/app.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/solon-plugins/wx-java-qidian-solon-plugin/src/test/resources/app.yml -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/channel/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.channel.enums; 2 | 3 | /** 4 | * httpclient类型 5 | * 6 | * @author Winnie 7 | * @date 2024/9/13 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient 12 | */ 13 | HTTP_CLIENT, 14 | // WxChannelServiceOkHttpImpl 实现经测试无法正常完成业务固暂不支持OK_HTTP方式 15 | // /** 16 | // * OkHttp. 17 | // */ 18 | // OK_HTTP, 19 | } 20 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/channel/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.channel.enums; 2 | 3 | /** 4 | * storage类型 5 | * 6 | * @author Winnie 7 | * @date 2024/9/13 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存 12 | */ 13 | MEMORY, 14 | /** 15 | * redis(JedisClient) 16 | */ 17 | JEDIS, 18 | /** 19 | * redis(Redisson) 20 | */ 21 | REDISSON, 22 | /** 23 | * redis(RedisTemplate) 24 | */ 25 | REDIS_TEMPLATE 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-multi-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.channel.autoconfigure.WxChannelMultiAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-multi-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.channel.autoconfigure.WxChannelMultiAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/channel/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.channel.enums; 2 | 3 | /** 4 | * httpclient类型 5 | * 6 | * @author Zeyes 7 | */ 8 | public enum HttpClientType { 9 | /** 10 | * HttpClient 11 | */ 12 | HttpClient 13 | } 14 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/channel/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.channel.enums; 2 | 3 | /** 4 | * storage类型 5 | * 6 | * @author Zeyes 7 | */ 8 | public enum StorageType { 9 | /** 10 | * 内存 11 | */ 12 | Memory, 13 | /** 14 | * redis(JedisClient) 15 | */ 16 | Jedis, 17 | /** 18 | * redis(Redisson) 19 | */ 20 | Redisson, 21 | /** 22 | * redis(RedisTemplate) 23 | */ 24 | RedisTemplate 25 | } 26 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.channel.config.WxChannelAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-channel-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.channel.config.WxChannelAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/cp/autoconfigure/WxCpMultiAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.cp.autoconfigure; 2 | 3 | import com.binarywang.spring.starter.wxjava.cp.configuration.WxCpMultiServicesAutoConfiguration; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.Import; 6 | 7 | /** 8 | * 企业微信自动注册 9 | * 10 | * @author yl 11 | * created on 2023/10/16 12 | */ 13 | @Configuration 14 | @Import(WxCpMultiServicesAutoConfiguration.class) 15 | public class WxCpMultiAutoConfiguration { 16 | } 17 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.cp.autoconfigure.WxCpMultiAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-cp-multi-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.cp.autoconfigure.WxCpMultiAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-cp-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.cp.config.WxCpAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-cp-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.cp.config.WxCpAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/autoconfigure/WxMaMultiAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.miniapp.autoconfigure; 2 | 3 | import com.binarywang.spring.starter.wxjava.miniapp.configuration.WxMaMultiServiceConfiguration; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.Import; 6 | 7 | /** 8 | * @author monch 9 | * created on 2024/9/6 10 | */ 11 | @Configuration 12 | @Import(WxMaMultiServiceConfiguration.class) 13 | public class WxMaMultiAutoConfiguration { 14 | } 15 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-multi-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.miniapp.autoconfigure.WxMaMultiAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-multi-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.miniapp.autoconfigure.WxMaMultiAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.miniapp.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-05-25 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.miniapp.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-05-25 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.binarywang.spring.starter.wxjava.miniapp.config.WxMaAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.miniapp.config.WxMaAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-multi-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/autoconfigure/WxMpMultiAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.mp.autoconfigure; 2 | 3 | import com.binarywang.spring.starter.wxjava.mp.configuration.WxMpMultiServiceConfiguration; 4 | import org.springframework.context.annotation.Configuration; 5 | import org.springframework.context.annotation.Import; 6 | 7 | /** 8 | * @author yl 9 | * created on 2024/1/23 10 | */ 11 | @Configuration 12 | @Import(WxMpMultiServiceConfiguration.class) 13 | public class WxMpMultiAutoConfiguration { 14 | } 15 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-multi-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.mp.autoconfigure.WxMpMultiAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-multi-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.mp.autoconfigure.WxMpMultiAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.mp.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.mp.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/mp/properties/HostConfig.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.mp.properties; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class HostConfig implements Serializable { 9 | 10 | private static final long serialVersionUID = -4172767630740346001L; 11 | 12 | /** 13 | * 对应于:https://api.weixin.qq.com 14 | */ 15 | private String apiHost; 16 | 17 | /** 18 | * 对应于:https://open.weixin.qq.com 19 | */ 20 | private String openHost; 21 | 22 | /** 23 | * 对应于:https://mp.weixin.qq.com 24 | */ 25 | private String mpHost; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.binarywang.spring.starter.wxjava.mp.config.WxMpAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-mp-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.mp.config.WxMpAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-open-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | com.binarywang.spring.starter.wxjava.open.config.WxOpenAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-open-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.open.config.WxOpenAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-pay-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.binarywang.spring.starter.wxjava.pay.config.WxPayAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-pay-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.pay.config.WxPayAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-qidian-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/qidian/enums/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.qidian.enums; 2 | 3 | /** 4 | * httpclient类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum HttpClientType { 10 | /** 11 | * HttpClient. 12 | */ 13 | HttpClient, 14 | /** 15 | * OkHttp. 16 | */ 17 | OkHttp, 18 | /** 19 | * JoddHttp. 20 | */ 21 | JoddHttp, 22 | } 23 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-qidian-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/qidian/enums/StorageType.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.qidian.enums; 2 | 3 | /** 4 | * storage类型. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-08-30 8 | */ 9 | public enum StorageType { 10 | /** 11 | * 内存. 12 | */ 13 | Memory, 14 | /** 15 | * redis(JedisClient). 16 | */ 17 | Jedis, 18 | /** 19 | * redis(Redisson). 20 | */ 21 | Redisson, 22 | /** 23 | * redis(RedisTemplate). 24 | */ 25 | RedisTemplate 26 | } 27 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-qidian-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/qidian/properties/HostConfig.java: -------------------------------------------------------------------------------- 1 | package com.binarywang.spring.starter.wxjava.qidian.properties; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class HostConfig implements Serializable { 9 | 10 | private static final long serialVersionUID = -4172767630740346001L; 11 | 12 | private String apiHost; 13 | 14 | private String openHost; 15 | 16 | private String qidianHost; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-qidian-spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.binarywang.spring.starter.wxjava.qidian.config.WxQidianAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-boot-starters/wx-java-qidian-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.binarywang.spring.starter.wxjava.qidian.config.WxQidianAutoConfiguration 2 | -------------------------------------------------------------------------------- /weixin-graal/src/main/resources/META-INF/services/javax.annotation.processing.Processor: -------------------------------------------------------------------------------- 1 | com.github.binarywang.wx.graal.GraalProcessor 2 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/audit/CatsV2.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.audit; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | /** 10 | * 新类目树类目ID 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class CatsV2 implements Serializable { 17 | private static final long serialVersionUID = -2484092110142035589L; 18 | 19 | /** 新类目树类目ID */ 20 | @JsonProperty("cat_id") 21 | private String catId; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/cooperation/CooperationQrCode.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.cooperation; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 合作账号二维码数据 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class CooperationQrCode implements Serializable { 16 | 17 | private static final long serialVersionUID = -7096916911986699150L; 18 | 19 | /** base64编码后的图片数据 */ 20 | @JsonProperty("qrcode_base64") 21 | private Integer qrCodeBase64; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/coupon/UserCouponIdInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.coupon; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * 用户优惠券id 9 | * 10 | * @author Zeyes 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | public class UserCouponIdInfo extends CouponIdInfo { 15 | 16 | private static final long serialVersionUID = -8285585134793264542L; 17 | /** 用户优惠券ID */ 18 | @JsonProperty("user_coupon_id") 19 | private String userCouponId; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/coupon/UserExtInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.coupon; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 用户优惠券附加信息 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class UserExtInfo implements Serializable { 16 | 17 | private static final long serialVersionUID = 8304922825230343409L; 18 | /** 优惠券核销时间 */ 19 | @JsonProperty("use_time") 20 | private Long useTime; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/freight/NotSendArea.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.freight; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * 不发货区域 9 | * 10 | * @author Zeyes 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @EqualsAndHashCode(callSuper = true) 15 | public class NotSendArea extends AddressInfoList { 16 | 17 | private static final long serialVersionUID = -1836467830293286560L; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/home/tree/LevelTreeInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.home.tree; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import java.util.List; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | /** 11 | * 分类信息 12 | * 13 | * @author Zeyes 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | public class LevelTreeInfo implements Serializable { 19 | 20 | /** 一级分类 */ 21 | @JsonProperty("level_1") 22 | private List level1; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/home/tree/TreeShowGetResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.home.tree; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.NoArgsConstructor; 7 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 8 | 9 | /** 10 | * @author Zeyes 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @EqualsAndHashCode(callSuper = true) 15 | public class TreeShowGetResponse extends WxChannelBaseResponse { 16 | 17 | /** resp */ 18 | @JsonProperty("resp") 19 | private TreeShowInfo resp; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/home/tree/TreeShowSetResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.home.tree; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.NoArgsConstructor; 7 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 8 | 9 | /** 10 | * @author Zeyes 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | @EqualsAndHashCode(callSuper = true) 15 | public class TreeShowSetResponse extends WxChannelBaseResponse { 16 | 17 | /** resp */ 18 | @JsonProperty("resp") 19 | private TreeAuditResult resp; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/league/CatInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.league; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 商品分类信息 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class CatInfo implements Serializable { 16 | 17 | private static final long serialVersionUID = 8449223922139383888L; 18 | /** 类目id */ 19 | @JsonProperty("cat_id") 20 | private String catId; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/live/dashboard/DataNode.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.live.dashboard; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 统计数值 11 | * 12 | * @author Winnie 13 | */ 14 | @Data 15 | @NoArgsConstructor 16 | public class DataNode implements Serializable { 17 | 18 | private static final long serialVersionUID = 3192158546911682577L; 19 | 20 | /** 21 | * 统计数值维度指标 22 | */ 23 | @JsonProperty("fields") 24 | private Fields fields; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/order/OrderCouponInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.order; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 卡券信息 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class OrderCouponInfo implements Serializable { 16 | 17 | private static final long serialVersionUID = -2033350505767196339L; 18 | /** 用户优惠券id */ 19 | @JsonProperty("user_coupon_id") 20 | private String userCouponId; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/order/OrderRefundInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.order; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 订单退款信息 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class OrderRefundInfo implements Serializable { 16 | private static final long serialVersionUID = -7257910073388645919L; 17 | 18 | /** 退还运费金额,礼物订单(is_present=true)可能存在 */ 19 | @JsonProperty("refund_freight") 20 | private Integer refundFreight; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/order/QualityInsepctInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.order; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 质检信息 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class QualityInsepctInfo implements Serializable { 16 | 17 | private static final long serialVersionUID = 8109819414306253475L; 18 | 19 | /** 质检状态 */ 20 | @JsonProperty("inspect_status") 21 | private Integer inspectStatus; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/product/AfterSaleInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.product; 2 | 3 | 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import java.io.Serializable; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | /** 10 | * 商品售后信息 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | public class AfterSaleInfo implements Serializable { 15 | 16 | 17 | /** 18 | * 商品的售后地址id,可使用获取地址详情 19 | */ 20 | @JsonProperty("after_sale_address_id") 21 | private Long afterSaleAddressId; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/product/SpuCategory.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.product; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 商品类目id 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class SpuCategory implements Serializable { 16 | 17 | private static final long serialVersionUID = -8500610555473351789L; 18 | 19 | /** 类目id */ 20 | @JsonProperty("cat_id") 21 | private String id; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/shop/ShopInfoResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.shop; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 7 | 8 | /** 9 | * 店铺基本信息响应 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class ShopInfoResponse extends WxChannelBaseResponse { 16 | 17 | @JsonProperty("info") 18 | private ShopInfo info; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/vip/ScoreInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.vip; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 视频号小店-会员功能 - 订单详情 11 | * 12 | * @author asushiye 13 | * 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | public class ScoreInfo implements Serializable { 18 | 19 | private static final long serialVersionUID = -3290653233070826576L; 20 | /** 积分 */ 21 | @JsonProperty("score") 22 | protected String score; 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/vip/UserInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.vip; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 视频号小店-会员功能 - 订单详情 11 | * 12 | * @author asushiye 13 | * 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | public class UserInfo implements Serializable { 18 | 19 | private static final long serialVersionUID = 8523354700203385190L; 20 | /** 手机号 */ 21 | @JsonProperty("phone_number") 22 | protected String phoneNumber; 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/vip/VipInfoResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.vip; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 7 | 8 | /** 9 | * @author : zhenyun.su 10 | * @since : 2023/10/8 11 | */ 12 | 13 | @Data 14 | @NoArgsConstructor 15 | public class VipInfoResponse extends WxChannelBaseResponse { 16 | 17 | private static final long serialVersionUID = -2439510304690862381L; 18 | @JsonProperty("info") 19 | private VipInfo vipInfo; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/vip/VipScoreResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.vip; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 7 | 8 | /** 9 | * @author : zhenyun.su 10 | * @since : 2023/10/8 11 | */ 12 | 13 | @Data 14 | @NoArgsConstructor 15 | public class VipScoreResponse extends WxChannelBaseResponse { 16 | 17 | private static final long serialVersionUID = -7252972818862693546L; 18 | @JsonProperty("info") 19 | private ScoreInfo scoreInfo; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/warehouse/WarehouseParam.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.warehouse; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * 仓库 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | @EqualsAndHashCode(callSuper = true) 16 | @JsonInclude(JsonInclude.Include.NON_NULL) 17 | public class WarehouseParam extends Warehouse { 18 | 19 | private static final long serialVersionUID = -3412047348380785225L; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/warehouse/WarehouseResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.bean.warehouse; 2 | 3 | import com.fasterxml.jackson.annotation.JsonProperty; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import me.chanjar.weixin.channel.bean.base.WxChannelBaseResponse; 7 | 8 | /** 9 | * 仓库响应 10 | * 11 | * @author Zeyes 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class WarehouseResponse extends WxChannelBaseResponse { 16 | 17 | private static final long serialVersionUID = 3206095869486573824L; 18 | /** 仓库库存 */ 19 | @JsonProperty("data") 20 | private Warehouse data; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/enums/MessageType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.enums; 2 | 3 | /** 4 | * 消息类型 5 | * 6 | * @author Zeyes 7 | */ 8 | public enum MessageType { 9 | EVENT("event"), 10 | ; 11 | 12 | private final String key; 13 | 14 | MessageType(String key) { 15 | this.key = key; 16 | } 17 | 18 | public String getKey() { 19 | return key; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/message/rule/HandlerConsumer.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.message.rule; 2 | 3 | import me.chanjar.weixin.channel.message.WxChannelMessage; 4 | 5 | /** 6 | * @author Zeyes 7 | */ 8 | @FunctionalInterface 9 | public interface HandlerConsumer { 10 | 11 | void accept(T t, U u, V v, W w, X x); 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-channel/src/main/java/me/chanjar/weixin/channel/message/rule/WxChannelMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.message.rule; 2 | 3 | import me.chanjar.weixin.channel.message.WxChannelMessage; 4 | 5 | /** 6 | * 消息匹配器,用在消息路由的时候 7 | * 8 | * @author Zeyes 9 | */ 10 | public interface WxChannelMessageMatcher { 11 | 12 | /** 13 | * 消息是否匹配某种模式 14 | * 15 | * @param message 消息 16 | * @return 是否匹配 17 | */ 18 | boolean match(WxChannelMessage message); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-channel/src/test/java/me/chanjar/weixin/channel/test/TestConfig.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.channel.test; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import me.chanjar.weixin.channel.config.impl.WxChannelDefaultConfigImpl; 6 | 7 | @Getter 8 | @Setter 9 | public class TestConfig extends WxChannelDefaultConfigImpl { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /weixin-java-channel/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-channel/src/test/resources/test-config.sample.xml: -------------------------------------------------------------------------------- 1 | 2 | JSON或者XML 3 | appid 4 | secret 5 | Token 6 | EncodingAESKey 7 | false 8 | 可以不填写 9 | 可以不填写 10 | 11 | -------------------------------------------------------------------------------- /weixin-java-channel/src/test/resources/testng.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /weixin-java-channel/src/test/resources/tmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-channel/src/test/resources/tmp.png -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/annotation/Required.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | *
10 |  * 标识某个字段是否是必填的
11 |  * Created by Binary Wang on 2016/9/25.
12 |  * 
13 | * 14 | * @author binarywang (https://github.com/binarywang) 15 | */ 16 | @Retention(RetentionPolicy.RUNTIME) 17 | @Target(ElementType.FIELD) 18 | public @interface Required { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxErrorExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.api; 2 | 3 | import me.chanjar.weixin.common.error.WxErrorException; 4 | 5 | /** 6 | * WxErrorException处理器. 7 | * 8 | * @author Daniel Qian 9 | */ 10 | public interface WxErrorExceptionHandler { 11 | 12 | void handle(WxErrorException e); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/ToJson.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean; 2 | 3 | /** 4 | * 包含toJson()方法的接口. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-10-05 8 | */ 9 | public interface ToJson { 10 | /** 11 | * 转换为json字符串 12 | * @return json字符串 13 | */ 14 | String toJson(); 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/WxAccessTokenEntity.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean; 2 | 3 | import lombok.EqualsAndHashCode; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import lombok.ToString; 7 | 8 | /** 9 | * token 10 | * 11 | * @author cn 12 | */ 13 | @Getter 14 | @Setter 15 | @ToString(callSuper = true) 16 | @EqualsAndHashCode(callSuper = true) 17 | public class WxAccessTokenEntity extends WxAccessToken { 18 | private String appid; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMinishopPicFileCustomizeResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean.result; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopPicFileCustomizeResult implements Serializable { 9 | private String mediaId; 10 | private String tempImgUrl; 11 | } 12 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/result/WxMinishopPicFileResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean.result; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopPicFileResult implements Serializable { 9 | private String mediaId; 10 | private String payMediaId; 11 | private String tempImgUrl; 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/subscribemsg/CategoryData.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean.subscribemsg; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * . 9 | * 10 | * @author Binary Wang 11 | * created on 2021-01-27 12 | */ 13 | @Data 14 | public class CategoryData implements Serializable { 15 | private static final long serialVersionUID = -5935548352317679892L; 16 | 17 | private int id; 18 | private String name; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/subscribemsg/PubTemplateKeyword.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean.subscribemsg; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * . 9 | * 10 | * @author Binary Wang 11 | * created on 2021-01-27 12 | */ 13 | @Data 14 | public class PubTemplateKeyword implements Serializable { 15 | private static final long serialVersionUID = -1100641668859815647L; 16 | 17 | private int kid; 18 | private String name; 19 | private String example; 20 | private String rule; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/bean/subscribemsg/TemplateInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean.subscribemsg; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * . 9 | * 10 | * @author Binary Wang 11 | * created on 2021-01-27 12 | */ 13 | @Data 14 | public class TemplateInfo implements Serializable { 15 | private static final long serialVersionUID = 6971785763573992264L; 16 | 17 | private String priTmplId; 18 | private String title; 19 | private String content; 20 | private String example; 21 | private int type; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/enums/WxType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.enums; 2 | 3 | /** 4 | *
 5 |  *  微信类型枚举.
 6 |  *  Created by BinaryWang on 2018/5/14.
 7 |  * 
8 | * 9 | * @author Binary Wang 10 | */ 11 | public enum WxType { 12 | /** 13 | * 企业微信. 14 | */ 15 | CP, 16 | /** 17 | * 微信公众号. 18 | */ 19 | MP, 20 | /** 21 | * 微信小程序. 22 | */ 23 | MiniApp, 24 | /** 25 | * 微信开放平台. 26 | */ 27 | Open, 28 | /** 29 | * 微信支付. 30 | */ 31 | Pay, 32 | /** 33 | * 微信视频号 34 | */ 35 | Channel, 36 | ; 37 | } 38 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/error/WxRuntimeException.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.error; 2 | 3 | /** 4 | * WxJava专用的runtime exception. 5 | * 6 | * @author Binary Wang 7 | * created on 2020-09-26 8 | */ 9 | public class WxRuntimeException extends RuntimeException { 10 | private static final long serialVersionUID = 4881698471192264412L; 11 | 12 | public WxRuntimeException(Throwable e) { 13 | super(e); 14 | } 15 | 16 | public WxRuntimeException(String msg) { 17 | super(msg); 18 | } 19 | 20 | public WxRuntimeException(String msg, Throwable e) { 21 | super(msg, e); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/service/WxOAuth2ServiceDecorator.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.service; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.experimental.Delegate; 5 | 6 | /** 7 | * 微信 oauth2服务 装饰器 8 | * 9 | * @author 广州跨界 10 | */ 11 | @AllArgsConstructor 12 | public class WxOAuth2ServiceDecorator implements WxOAuth2Service { 13 | 14 | @Delegate 15 | private final WxOAuth2Service wxOAuth2Service; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/session/WxSession.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.session; 2 | 3 | import java.util.Enumeration; 4 | 5 | /** 6 | * @author Daniel Qian 7 | */ 8 | public interface WxSession { 9 | 10 | Object getAttribute(String name); 11 | 12 | Enumeration getAttributeNames(); 13 | 14 | void setAttribute(String name, Object value); 15 | 16 | void removeAttribute(String name); 17 | 18 | void invalidate(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/session/WxSessionManager.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.session; 2 | 3 | /** 4 | * @author Daniel Qian 5 | */ 6 | public interface WxSessionManager { 7 | 8 | /** 9 | * 获取某个sessionId对应的session,如果sessionId没有对应的session,则新建一个并返回。 10 | */ 11 | WxSession getSession(String sessionId); 12 | 13 | /** 14 | * 获取某个sessionId对应的session,如果sessionId没有对应的session,若create为true则新建一个,否则返回null。 15 | */ 16 | WxSession getSession(String sessionId, boolean create); 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/LogExceptionHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | import me.chanjar.weixin.common.api.WxErrorExceptionHandler; 5 | import me.chanjar.weixin.common.error.WxErrorException; 6 | 7 | /** 8 | * @author Daniel Qian 9 | */ 10 | @Slf4j 11 | public class LogExceptionHandler implements WxErrorExceptionHandler { 12 | @Override 13 | public void handle(WxErrorException e) { 14 | log.error("Error happens", e); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/RandomUtils.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util; 2 | 3 | public class RandomUtils { 4 | 5 | private static final String RANDOM_STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 6 | 7 | private static final java.util.Random RANDOM = new java.util.Random(); 8 | 9 | public static String getRandomStr() { 10 | StringBuilder sb = new StringBuilder(); 11 | for (int i = 0; i < 16; i++) { 12 | sb.append(RANDOM_STR.charAt(RANDOM.nextInt(RANDOM_STR.length()))); 13 | } 14 | return sb.toString(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/HttpClientType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http; 2 | 3 | /** 4 | * Created by ecoolper on 2017/4/28. 5 | */ 6 | public enum HttpClientType { 7 | /** 8 | * jodd-http. 9 | */ 10 | JODD_HTTP, 11 | /** 12 | * apache httpclient 4.x. 13 | */ 14 | APACHE_HTTP, 15 | /** 16 | * okhttp. 17 | */ 18 | OK_HTTP, 19 | /** 20 | * apache httpclient 5.x. 21 | */ 22 | HTTP_COMPONENTS 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/RequestHttp.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http; 2 | 3 | /** 4 | * Created by ecoolper on 2017/4/22. 5 | * 6 | * @author ecoolper 7 | */ 8 | public interface RequestHttp { 9 | 10 | /** 11 | * 返回httpClient. 12 | * 13 | * @return 返回httpClient 14 | */ 15 | H getRequestHttpClient(); 16 | 17 | /** 18 | * 返回httpProxy. 19 | * 20 | * @return 返回httpProxy 21 | */ 22 | P getRequestHttpProxy(); 23 | 24 | /** 25 | * 返回HttpType. 26 | * 27 | * @return HttpType 28 | */ 29 | HttpClientType getRequestType(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/ResponseHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http; 2 | 3 | /** 4 | *
 5 |  * http请求响应回调处理接口.
 6 |  * Created by Binary Wang on 2018/12/8.
 7 |  * 
8 | * 9 | * @param 返回值类型 10 | * @author Binary Wang 11 | */ 12 | public interface ResponseHandler { 13 | /** 14 | * 响应结果处理. 15 | * 16 | * @param t 要处理的对象 17 | */ 18 | void handle(T t); 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ApacheBasicResponseHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http.apache; 2 | 3 | import org.apache.http.impl.client.BasicResponseHandler; 4 | 5 | public class ApacheBasicResponseHandler extends BasicResponseHandler { 6 | 7 | public static final ApacheBasicResponseHandler INSTANCE = new ApacheBasicResponseHandler(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/apache/ByteArrayResponseHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http.apache; 2 | 3 | import org.apache.http.HttpEntity; 4 | import org.apache.http.impl.client.AbstractResponseHandler; 5 | import org.apache.http.util.EntityUtils; 6 | 7 | import java.io.IOException; 8 | 9 | public class ByteArrayResponseHandler extends AbstractResponseHandler { 10 | 11 | public static final ByteArrayResponseHandler INSTANCE = new ByteArrayResponseHandler(); 12 | 13 | @Override 14 | public byte[] handleEntity(HttpEntity entity) throws IOException { 15 | return EntityUtils.toByteArray(entity); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/hc/BasicResponseHandler.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.http.hc; 2 | 3 | import org.apache.hc.client5.http.impl.classic.BasicHttpClientResponseHandler; 4 | 5 | /** 6 | * ApacheBasicResponseHandler 7 | * 8 | * @author altusea 9 | */ 10 | public class BasicResponseHandler extends BasicHttpClientResponseHandler { 11 | 12 | public static final BasicHttpClientResponseHandler INSTANCE = new BasicHttpClientResponseHandler(); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/xml/XStreamCDataConverter.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.xml; 2 | 3 | import com.thoughtworks.xstream.converters.basic.StringConverter; 4 | 5 | /** 6 | * CDATA 内容转换器,加上CDATA标签. 7 | * 8 | * @author Daniel Qian 9 | */ 10 | public class XStreamCDataConverter extends StringConverter { 11 | 12 | @Override 13 | public String toString(Object obj) { 14 | return ""; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/xml/XStreamMediaIdConverter.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.xml; 2 | 3 | public class XStreamMediaIdConverter extends XStreamCDataConverter { 4 | @Override 5 | public String toString(Object obj) { 6 | return "" + super.toString(obj) + ""; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /weixin-java-common/src/main/java/me/chanjar/weixin/common/util/xml/XStreamReplaceNameConverter.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.util.xml; 2 | 3 | public class XStreamReplaceNameConverter extends XStreamCDataConverter { 4 | @Override 5 | public String toString(Object obj) { 6 | return "" + super.toString(obj) + ""; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /weixin-java-common/src/test/java/me/chanjar/weixin/common/bean/WxAccessTokenTest.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.bean; 2 | 3 | import org.testng.*; 4 | import org.testng.annotations.*; 5 | 6 | @Test 7 | public class WxAccessTokenTest { 8 | 9 | public void testFromJson() { 10 | 11 | String json = "{\"access_token\":\"ACCESS_TOKEN\",\"expires_in\":7200}"; 12 | WxAccessToken wxError = WxAccessToken.fromJson(json); 13 | Assert.assertEquals(wxError.getAccessToken(), "ACCESS_TOKEN"); 14 | Assert.assertTrue(wxError.getExpiresIn() == 7200); 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-common/src/test/java/me/chanjar/weixin/common/redis/JedisWxRedisOpsTest.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.common.redis; 2 | 3 | import org.testng.annotations.AfterTest; 4 | import org.testng.annotations.BeforeTest; 5 | import redis.clients.jedis.JedisPool; 6 | 7 | public class JedisWxRedisOpsTest extends CommonWxRedisOpsTest { 8 | 9 | JedisPool jedisPool; 10 | 11 | @BeforeTest 12 | public void init() { 13 | this.jedisPool = new JedisPool("127.0.0.1", 6379); 14 | this.wxRedisOps = new JedisWxRedisOps(jedisPool); 15 | } 16 | 17 | @AfterTest 18 | public void destroy() { 19 | this.jedisPool.close(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-common/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpChat.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * 群聊 10 | * 11 | * @author gaigeshen 12 | */ 13 | @Data 14 | public class WxCpChat implements Serializable { 15 | private static final long serialVersionUID = -4301684507150486556L; 16 | 17 | private String id; 18 | private String name; 19 | private String owner; 20 | private List users; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/corpgroup/WxCpCorpGroupCorpGetTokenReq.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.corpgroup; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 获取下级/下游企业的access_token 10 | * @author libo 11 | */ 12 | @Data 13 | public class WxCpCorpGroupCorpGetTokenReq implements Serializable { 14 | private static final long serialVersionUID = -1876754768932436524L; 15 | @SerializedName("corpid") 16 | private String corpId; 17 | @SerializedName("business_type") 18 | private int businessType; 19 | @SerializedName("agentid") 20 | private int agentId; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/CustomerItem.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.moment; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | /** 8 | * The type Customer item. 9 | * 10 | * @author Boris 11 | */ 12 | @Getter 13 | @Setter 14 | public class CustomerItem { 15 | @SerializedName("external_userid") 16 | private String externalUserId; 17 | @SerializedName("userid") 18 | private String userId; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/ExternalContactList.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.moment; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * The type External contact list. 11 | */ 12 | @Getter 13 | @Setter 14 | public class ExternalContactList { 15 | @SerializedName("tag_list") 16 | private List tagList; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/moment/SenderList.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.moment; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * The type Sender list. 11 | * 12 | * @author Boris 13 | */ 14 | @Getter 15 | @Setter 16 | public class SenderList { 17 | @SerializedName("user_list") 18 | private List userList; 19 | @SerializedName("department_list") 20 | private List departmentList; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/File.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.msg; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * The type File. 11 | * 12 | * @author Binary Wang created on 2021-08-23 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class File implements Serializable { 17 | private static final long serialVersionUID = 2794189478198329090L; 18 | 19 | @SerializedName("media_id") 20 | private String mediaId; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/Location.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.msg; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | /** 7 | * 地理位置 8 | * 9 | * @author leiin created on 2021-10-29 10 | */ 11 | @Data 12 | @Accessors(chain = true) 13 | public class Location { 14 | private String latitude; 15 | private String longitude; 16 | private String name; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/Text.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.msg; 2 | 3 | import lombok.Data; 4 | import lombok.experimental.Accessors; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 消息文本消息. 10 | * 11 | * @author Binary Wang created on 2020-08-16 12 | */ 13 | @Data 14 | @Accessors(chain = true) 15 | public class Text implements Serializable { 16 | private static final long serialVersionUID = 6608288753719551600L; 17 | private String content; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/msg/Video.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.msg; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 视频消息 11 | * 12 | * @author pg created on 2021-6-21 13 | */ 14 | @Data 15 | @Accessors(chain = true) 16 | public class Video implements Serializable { 17 | private static final long serialVersionUID = -6048642921382867138L; 18 | @SerializedName("media_id") 19 | private String mediaId; 20 | @SerializedName("thumb_media_id") 21 | private String thumbMediaId; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/external/product/Image.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.external.product; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 商品画册图片 10 | * 11 | * @author Lo_ading 12 | */ 13 | @Data 14 | public class Image implements Serializable { 15 | private static final long serialVersionUID = -2737415903252627814L; 16 | 17 | @SerializedName("media_id") 18 | private String mediaId; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/kf/WxCpKfAccountDel.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.kf; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 删除客服帐号-请求参数 11 | * 12 | * @author Fu created on 2022/1/19 19:09 13 | */ 14 | @NoArgsConstructor 15 | @Data 16 | public class WxCpKfAccountDel implements Serializable { 17 | 18 | private static final long serialVersionUID = 1997221467585676772L; 19 | 20 | /** 21 | * 客服帐号ID。 22 | * 不多于64字节 23 | */ 24 | @SerializedName("open_kfid") 25 | private String openKfid; 26 | 27 | } 28 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/kf/msg/WxCpKfBusinessCardMsg.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.kf.msg; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * The type Wx cp kf business card msg. 9 | * 10 | * @author leiin created on 2022/1/26 5:35 下午 11 | */ 12 | @NoArgsConstructor 13 | @Data 14 | public class WxCpKfBusinessCardMsg { 15 | @SerializedName("userid") 16 | private String userId; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/kf/msg/WxCpKfResourceMsg.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.kf.msg; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * The type Wx cp kf resource msg. 9 | * 10 | * @author leiin created on 2022/1/26 5:31 下午 11 | */ 12 | @NoArgsConstructor 13 | @Data 14 | public class WxCpKfResourceMsg { 15 | @SerializedName("media_id") 16 | private String mediaId; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/kf/msg/WxCpKfTextMsg.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.kf.msg; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | * The type Wx cp kf text msg. 9 | * 10 | * @author leiin created on 2022/1/26 5:30 下午 11 | */ 12 | @NoArgsConstructor 13 | @Data 14 | public class WxCpKfTextMsg { 15 | 16 | /** 17 | *
18 |    *   参数:content
19 |    *   是否必须:是
20 |    *   类型:string
21 |    *   说明:消息内容,最长不超过2048个字节
22 |    * 
23 | */ 24 | private String content; 25 | @SerializedName("menu_id") 26 | private String menuId; 27 | } 28 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/linkedcorp/WxCpLinkedCorpAgentPerm.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.linkedcorp; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 获取应用可见范围请求类 10 | * 11 | * @author libo 12 | */ 13 | @Data 14 | public class WxCpLinkedCorpAgentPerm implements Serializable { 15 | private static final long serialVersionUID = 6794613362541093845L; 16 | @SerializedName("userids") 17 | private String[] userIdList; 18 | @SerializedName("department_ids") 19 | private String[] departmentIdList; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpApprovalApplier.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * 申请人信息 11 | * 12 | * @author element 13 | */ 14 | @Data 15 | @EqualsAndHashCode(callSuper = true) 16 | public class WxCpApprovalApplier extends WxCpOperator implements Serializable { 17 | 18 | private static final long serialVersionUID = -8974662568286821271L; 19 | 20 | /** 21 | * 申请人所在部门id 22 | */ 23 | @SerializedName("partyid") 24 | private String partyId; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpApprovalApplyData.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.cp.bean.oa.applydata.ApplyDataContent; 5 | 6 | import java.io.Serializable; 7 | import java.util.List; 8 | 9 | /** 10 | * 审批申请数据 11 | * 12 | * @author element 13 | */ 14 | @Data 15 | public class WxCpApprovalApplyData implements Serializable { 16 | 17 | private static final long serialVersionUID = 4061352949894274704L; 18 | 19 | private List contents; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpApproverAttr.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * 审批方式 7 | * 8 | * @author element 9 | */ 10 | public enum WxCpApproverAttr { 11 | /** 12 | * 或签 13 | */ 14 | @SerializedName("1") 15 | ONE_SIGN(1), 16 | /** 17 | * 会签 18 | */ 19 | @SerializedName("2") 20 | ALL_SIGN(2); 21 | 22 | private final Integer attr; 23 | 24 | WxCpApproverAttr(Integer attr) { 25 | this.attr = attr; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpCheckinOption.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 企业微信打卡规则. 10 | * 11 | * @author Element created on 2019-04-06 13:22 12 | */ 13 | @Data 14 | public class WxCpCheckinOption implements Serializable { 15 | private static final long serialVersionUID = -1964233697990417482L; 16 | 17 | @SerializedName("userid") 18 | private String userId; 19 | 20 | @SerializedName("group") 21 | private WxCpCheckinGroupBase group; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpOperator.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | 9 | /** 10 | * 企业微信操作人 11 | * 12 | * @author element 13 | */ 14 | @Data 15 | public class WxCpOperator implements Serializable { 16 | 17 | private static final long serialVersionUID = 5797144853574346736L; 18 | 19 | /** 20 | * 企业微信userid 21 | */ 22 | @SerializedName("userid") 23 | private String userId; 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/applydata/ContentTitle.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.applydata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Content title. 9 | * 10 | * @author element 11 | */ 12 | @Data 13 | public class ContentTitle implements Serializable { 14 | 15 | private static final long serialVersionUID = -4501999157383517007L; 16 | 17 | private String text; 18 | private String lang; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateContent.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * The type Template content. 10 | * 11 | * @author gyv12345 @163.com 12 | */ 13 | @Data 14 | public class TemplateContent implements Serializable { 15 | private static final long serialVersionUID = -5640250983775840865L; 16 | 17 | private List controls; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateControls.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Template controls. 9 | * 10 | * @author Administrator 11 | */ 12 | @Data 13 | public class TemplateControls implements Serializable { 14 | 15 | private static final long serialVersionUID = -7496794407355510374L; 16 | 17 | private TemplateProperty property; 18 | 19 | private TemplateConfig config; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateDateRange.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Template date range. 9 | * 10 | * @author gyv12345 @163.com 11 | */ 12 | @Data 13 | public class TemplateDateRange implements Serializable { 14 | 15 | private static final long serialVersionUID = -9209035461466543180L; 16 | 17 | /** 18 | * 时间刻度:hour-精确到分钟, halfday—上午/下午 19 | */ 20 | private String type; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateLocation.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * The type Template location. 7 | * 8 | * @author RickSun sunalee@dingtalk.com 9 | */ 10 | @Data 11 | public class TemplateLocation { 12 | 13 | /** 14 | * 模板位置的范围 15 | */ 16 | private Integer distance; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTips.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author mrsiu@msn.com 10 | * @version 1.0 11 | * @date 2025/1/16 09:40 12 | */ 13 | @Data 14 | public class TemplateTips { 15 | 16 | @SerializedName("tips_content") 17 | private List tipsContent; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsContent.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author mrsiu@msn.com 7 | * @version 1.0 8 | * @date 2025/1/16 09:42 9 | */ 10 | @Data 11 | public class TemplateTipsContent { 12 | 13 | private TemplateTipsText text; 14 | private String lang; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsSubText.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author mrsiu@msn.com 7 | * @version 1.0 8 | * @date 2025/1/16 09:45 9 | */ 10 | @Data 11 | public class TemplateTipsSubText { 12 | private Integer type; 13 | private TemplateTipsSubTextContent content; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsSubTextContent.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author mrsiu@msn.com 8 | * @version 1.0 9 | * @date 2025/1/16 09:46 10 | */ 11 | @Data 12 | public class TemplateTipsSubTextContent { 13 | @SerializedName("plain_text") 14 | private TemplateTipsSubTextContentPlainText plainText; 15 | private TemplateTipsSubTextContentLink link; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsSubTextContentLink.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author mrsiu@msn.com 7 | * @version 1.0 8 | * @date 2025/1/16 09:49 9 | */ 10 | @Data 11 | public class TemplateTipsSubTextContentLink { 12 | private String title; 13 | private String url; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsSubTextContentPlainText.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author mrsiu@msn.com 7 | * @date 2025/1/16 09:47 8 | * @version 1.0 9 | */ 10 | @Data 11 | public class TemplateTipsSubTextContentPlainText { 12 | private String content; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTipsText.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author mrsiu@msn.com 10 | * @date 2025/1/16 09:43 11 | * @version 1.0 12 | */ 13 | @Data 14 | public class TemplateTipsText { 15 | @SerializedName("sub_text") 16 | private List subText; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateTitle.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Template title. 9 | * 10 | * @author gyv12345 @163.com 11 | */ 12 | @Data 13 | public class TemplateTitle implements Serializable { 14 | private static final long serialVersionUID = -3229779834737051398L; 15 | 16 | private String text; 17 | 18 | private String lang; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/TemplateVacationItem.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * The type Template vacation item. 10 | * 11 | * @author gyv12345 @163.com 12 | */ 13 | @Data 14 | public class TemplateVacationItem implements Serializable { 15 | private static final long serialVersionUID = 4510594801023791319L; 16 | 17 | private Integer id; 18 | 19 | private List name; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/control/TemplateContact.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata.control; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Template contact. 9 | * 10 | * @author gyv12345 @163.com 11 | */ 12 | @Data 13 | public class TemplateContact implements Serializable { 14 | private static final long serialVersionUID = -7840088884653172851L; 15 | /** 16 | * 选择方式:single-单选;multi-多选 17 | */ 18 | private String type; 19 | /** 20 | * 选择对象:user-成员;department-部门 21 | */ 22 | private String mode; 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/control/TemplateDate.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata.control; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * The type Template date. 9 | * 10 | * @author Administrator 11 | */ 12 | @Data 13 | public class TemplateDate implements Serializable { 14 | private static final long serialVersionUID = 1300634733160349684L; 15 | /** 16 | * day-日期;hour-日期+时间 17 | */ 18 | private String type; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/control/TemplateSelector.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata.control; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.cp.bean.oa.templatedata.TemplateOptions; 5 | 6 | import java.io.Serializable; 7 | import java.util.List; 8 | 9 | /** 10 | * The type Template selector. 11 | * 12 | * @author gyv12345 @163.com 13 | */ 14 | @Data 15 | public class TemplateSelector implements Serializable { 16 | private static final long serialVersionUID = 4995408101489736881L; 17 | /** 18 | * single-单选;multi-多选 19 | */ 20 | private String type; 21 | 22 | private List options; 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/control/TemplateTable.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata.control; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.cp.bean.oa.templatedata.TemplateControls; 5 | 6 | import java.io.Serializable; 7 | import java.util.List; 8 | 9 | /** 10 | * The type Template table. 11 | * 12 | * @author gyv12345 @163.com 13 | */ 14 | @Data 15 | public class TemplateTable implements Serializable { 16 | private static final long serialVersionUID = -8181588935694605858L; 17 | 18 | private List children; 19 | 20 | private String[] statField; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/templatedata/control/TemplateVacation.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.bean.oa.templatedata.control; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.cp.bean.oa.templatedata.TemplateVacationItem; 5 | 6 | import java.io.Serializable; 7 | import java.util.List; 8 | 9 | /** 10 | * The type Template vacation. 11 | * 12 | * @author gyv12345 @163.com 13 | */ 14 | @Data 15 | public class TemplateVacation implements Serializable { 16 | private static final long serialVersionUID = 3442297114957906890L; 17 | 18 | private List item; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/message/WxCpMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.message; 2 | 3 | import me.chanjar.weixin.cp.bean.message.WxCpXmlMessage; 4 | 5 | /** 6 | * 消息匹配器,用在消息路由的时候 7 | * 8 | * @author Daniel Qian 9 | */ 10 | public interface WxCpMessageMatcher { 11 | 12 | /** 13 | * 消息是否匹配某种模式 14 | * 15 | * @param message the message 16 | * @return the boolean 17 | */ 18 | boolean match(WxCpXmlMessage message); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/message/WxCpTpMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.tp.message; 2 | 3 | import me.chanjar.weixin.cp.bean.message.WxCpTpXmlMessage; 4 | 5 | /** 6 | * 消息匹配器,用在消息路由的时候 7 | * 8 | * @author Daniel Qian 9 | */ 10 | public interface WxCpTpMessageMatcher { 11 | 12 | /** 13 | * 消息是否匹配某种模式 14 | * 15 | * @param message the message 16 | * @return the boolean 17 | */ 18 | boolean match(WxCpTpXmlMessage message); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-cp/src/main/java/me/chanjar/weixin/cp/tp/service/impl/WxCpTpServiceImpl.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.tp.service.impl; 2 | 3 | /** 4 | *
 5 |  *  默认接口实现类,使用apache httpclient实现
 6 |  * Created by zhenjun cai.
 7 |  * 
8 | * 9 | * @author zhenjun cai 10 | */ 11 | public class WxCpTpServiceImpl extends WxCpTpServiceApacheHttpClientImpl { 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/ApiTestModuleWithMockServer.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.cp.api; 2 | 3 | import com.google.inject.Binder; 4 | 5 | /** 6 | * 带mock server 的test module. 7 | * 8 | * @author Binary Wang created on 2020-08-30 9 | */ 10 | public class ApiTestModuleWithMockServer extends ApiTestModule { 11 | /** 12 | * The constant mockServerPort. 13 | */ 14 | public static final int mockServerPort = 8080; 15 | 16 | @Override 17 | public void configure(Binder binder) { 18 | super.configure(binder); 19 | super.config.setBaseApiUrl("http://localhost:" + mockServerPort); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-cp/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-cp/src/test/resources/mm.amr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-cp/src/test/resources/mm.amr -------------------------------------------------------------------------------- /weixin-java-cp/src/test/resources/mm.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-cp/src/test/resources/mm.jpeg -------------------------------------------------------------------------------- /weixin-java-cp/src/test/resources/mm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-cp/src/test/resources/mm.mp3 -------------------------------------------------------------------------------- /weixin-java-cp/src/test/resources/mm.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-cp/src/test/resources/mm.mp4 -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShareService.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.api; 2 | 3 | import cn.binarywang.wx.miniapp.bean.WxMaShareInfo; 4 | 5 | /** 6 | * 分享信息相关操作接口. 7 | * 8 | * @author zhfish 9 | */ 10 | public interface WxMaShareService { 11 | 12 | /** 13 | * 解密分享敏感数据. 14 | * 15 | * @param sessionKey 会话密钥 16 | * @param encryptedData 消息密文 17 | * @param ivStr 加密算法的初始向量 18 | */ 19 | WxMaShareInfo getShareInfo(String sessionKey, String encryptedData, String ivStr); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaShopCatService.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.api; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopCatGetResponse; 4 | import me.chanjar.weixin.common.error.WxErrorException; 5 | 6 | /** 7 | * 小程序交易组件-接入商品前必需接口 8 | * 9 | * @author liming1019 10 | */ 11 | public interface WxMaShopCatService { 12 | /** 13 | * 获取商品类目 14 | * 15 | * @return WxMaShopCatGetResponse 16 | * @throws WxErrorException 17 | */ 18 | WxMaShopCatGetResponse getCat() throws WxErrorException; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.api.impl; 2 | 3 | import lombok.extern.slf4j.Slf4j; 4 | 5 | /** 6 | * @author Binary Wang 7 | */ 8 | @Slf4j 9 | public class WxMaServiceImpl extends WxMaServiceHttpClientImpl { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/AbstractWxMaQrcodeWrapper.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean; 2 | 3 | import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; 4 | 5 | /** 6 | * 微信二维码(小程序码)包装器. 7 | * 8 | * @author Element 9 | */ 10 | public abstract class AbstractWxMaQrcodeWrapper { 11 | public String toJson() { 12 | return WxMaGsonBuilder.create().toJson(this); 13 | } 14 | 15 | @Override 16 | public String toString() { 17 | return this.toJson(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaCodeLineColor.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | /** 8 | *
 9 |  * lineColor 包装类
10 |  * 用于描述二维码(小程序码)颜色(RGB参数值),
11 |  * 详情请查看文档 https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html
12 |  * 
13 | * @author Element 14 | */ 15 | @Data 16 | @NoArgsConstructor 17 | @AllArgsConstructor 18 | public class WxMaCodeLineColor { 19 | private String r = "0", g = "0", b = "0"; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaShareInfo.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean; 2 | 3 | import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author zhfish 10 | */ 11 | @Data 12 | public class WxMaShareInfo implements Serializable { 13 | private static final long serialVersionUID = -8053613683499632226L; 14 | 15 | private String openGId; 16 | 17 | public static WxMaShareInfo fromJson(String json) { 18 | return WxMaGsonBuilder.create().fromJson(json, WxMaShareInfo.class); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/analysis/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 数据分析 3 | * 4 | * @author Charming 5 | * @since 2018-04-28 6 | */ 7 | package cn.binarywang.wx.miniapp.bean.analysis; 8 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/code/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 微信小程序代码管理相关的 bean 3 | * 4 | * @author Charming 5 | * @since 2018-04-26 19:44 6 | */ 7 | package cn.binarywang.wx.miniapp.bean.code; 8 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressInfoResult.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.express.result; 2 | 3 | import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder; 4 | 5 | public class WxMaExpressInfoResult { 6 | /** 7 | * 错误码 8 | */ 9 | private Integer errcode; 10 | 11 | /** 12 | * 错误信息 13 | */ 14 | private String errmsg; 15 | 16 | public static WxMaExpressInfoResult fromJson(String json) { 17 | return WxMaGsonBuilder.create().fromJson(json, WxMaExpressInfoResult.class); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/intractiy/PayMode.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.intractiy; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 充值、扣费主体 */ 6 | public enum PayMode { 7 | /** 门店 */ 8 | @SerializedName("PAY_MODE_STORE") 9 | STORE, 10 | /** 小程序 */ 11 | @SerializedName("PAY_MODE_APP") 12 | APP, 13 | /** 服务商 */ 14 | @SerializedName("PAY_MODE_COMPONENT") 15 | COMPONENT; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/intractiy/WxMaPreAddOrderRequest.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.intractiy; 2 | 3 | import org.apache.commons.lang3.builder.ToStringBuilder; 4 | 5 | public class WxMaPreAddOrderRequest extends BasicWxMaOrder { 6 | private Cargo cargo; 7 | 8 | public Cargo getCargo() { 9 | return cargo; 10 | } 11 | 12 | public void setCargo(Cargo cargo) { 13 | this.cargo = cargo; 14 | } 15 | 16 | public static class Cargo extends BasicWxMaOrder.Cargo {} 17 | 18 | @Override 19 | public String toString() { 20 | return ToStringBuilder.reflectionToString(this); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/intractiy/WxMaStoreChargeRequest.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.intractiy; 2 | 3 | import org.apache.commons.lang3.builder.ToStringBuilder; 4 | 5 | public class WxMaStoreChargeRequest extends BasicWxMaStoreChargeRefundRequest { 6 | 7 | /** 充值金额 单位:分, 50元起充 */ 8 | private int amount; 9 | 10 | public int getAmount() { 11 | return amount; 12 | } 13 | 14 | public void setAmount(int amount) { 15 | this.amount = amount; 16 | } 17 | 18 | @Override 19 | public String toString() { 20 | return ToStringBuilder.reflectionToString(this); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/intractiy/WxMaStoreRefundRequest.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.intractiy; 2 | 3 | import org.apache.commons.lang3.builder.ToStringBuilder; 4 | 5 | public class WxMaStoreRefundRequest extends BasicWxMaStoreChargeRefundRequest { 6 | 7 | @Override 8 | public String toString() { 9 | return ToStringBuilder.reflectionToString(this); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/invoice/reimburse/InvoiceCommodityInfo.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.invoice.reimburse; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | *
 7 |  * 发票商品信息
 8 |  * 
9 | * @author xiaoyu 10 | * @since 2021-03-23 11 | */ 12 | @Data 13 | public class InvoiceCommodityInfo { 14 | 15 | /** 16 | * 项目(商品)名称 17 | */ 18 | private String name; 19 | 20 | /** 21 | * 项目数量 22 | */ 23 | private Integer num; 24 | 25 | /** 26 | * 项目单位 27 | */ 28 | private String unit; 29 | 30 | /** 31 | * 单价,以分为单位 32 | */ 33 | private Integer price; 34 | } 35 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/order/WxMaOrderManagementGetOrderDetailPath.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.order; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * @author xzh 9 | * @Description 10 | * @createTime 2025/01/16 15:27 11 | */ 12 | @EqualsAndHashCode(callSuper = true) 13 | @Data 14 | public class WxMaOrderManagementGetOrderDetailPath extends WxMaOrderManagementResult { 15 | private static final long serialVersionUID = -5288666524298706169L; 16 | 17 | /** 18 | * 订单详情路径 19 | */ 20 | @SerializedName("path") 21 | private String path; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/MinishopShopCat.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | 7 | /** 8 | * 店铺的商品分类 9 | */ 10 | @Data 11 | public class MinishopShopCat implements Serializable { 12 | private static final long serialVersionUID = 4179473856929659641L; 13 | 14 | @SerializedName("cat_id") 15 | private Integer shopCatId; 16 | 17 | private String shopCatName; 18 | 19 | private Integer fShopCatId; 20 | 21 | @SerializedName("level") 22 | private Integer catLevel; 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMiniBatchGetAfterSaleOrderResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse; 4 | import com.google.gson.annotations.SerializedName; 5 | import java.util.List; 6 | import lombok.Data; 7 | 8 | /** 9 | * @author leiin 10 | * created on 2022/7/11 20:59 11 | */ 12 | @Data 13 | public class WxMiniBatchGetAfterSaleOrderResponse extends WxMaShopBaseResponse { 14 | @SerializedName("after_sale_order_list") 15 | private List afterSaleOrderList; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMiniGetAfterSaleOrderResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse; 4 | import com.google.gson.annotations.SerializedName; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author leiin 9 | * created on 2022/7/11 20:58 10 | */ 11 | @Data 12 | public class WxMiniGetAfterSaleOrderResponse extends WxMaShopBaseResponse { 13 | @SerializedName("after_sale_order") 14 | private WxMiniAfterSaleOrder afterSaleOrder; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopAddGoodsSkuData.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class WxMinishopAddGoodsSkuData implements Serializable { 9 | private static final long serialVersionUID = -2596988603027040989L; 10 | @SerializedName("sku_id") 11 | private Long skuId; 12 | @SerializedName("out_sku_id") 13 | private String outSkuId; 14 | @SerializedName("create_time") 15 | private String createTime; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopAddGoodsSpuData.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import java.io.Serializable; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class WxMinishopAddGoodsSpuData implements Serializable { 8 | private static final long serialVersionUID = 2023708625713948192L; 9 | private Long productId; 10 | 11 | private String outProductId; 12 | 13 | private String createTime; 14 | 15 | private String updateTime; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopDeliveryCompany.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import java.io.Serializable; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class WxMinishopDeliveryCompany implements Serializable { 8 | private static final long serialVersionUID = 3736970376549639779L; 9 | private String deliveryId; 10 | 11 | private String deliveryName; 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopOrderDetailResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse; 4 | import lombok.Data; 5 | 6 | /** 7 | * 获取订单详情 回包结构 8 | * 9 | * @author leiin 10 | * created on 2022/6/20 7:09 下午 11 | */ 12 | @Data 13 | public class WxMinishopOrderDetailResponse extends WxMaShopBaseResponse { 14 | 15 | /** 16 | * 订单结构 17 | */ 18 | private WxMinishopOrderResult order; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopOrderListResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse; 4 | import com.google.gson.annotations.SerializedName; 5 | import java.util.List; 6 | import lombok.Data; 7 | 8 | /** 9 | * @author leiin 10 | * created on 2022/6/20 7:09 下午 11 | */ 12 | @Data 13 | public class WxMinishopOrderListResponse extends WxMaShopBaseResponse { 14 | private List orders; 15 | @SerializedName("total_num") 16 | private Long totalNum; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopResult.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import java.io.Serializable; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class WxMinishopResult implements Serializable { 8 | private static final long serialVersionUID = 4323118714581265968L; 9 | private Integer errcode; 10 | 11 | private String errmsg; 12 | 13 | private T data; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopSkuListResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopBaseResponse; 4 | import java.util.List; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author leiin 9 | * created on 2022/7/13 20:00 10 | */ 11 | @Data 12 | public class WxMinishopSkuListResponse extends WxMaShopBaseResponse { 13 | private List skus; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopSpuGet.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import java.io.Serializable; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author leiin 8 | * created on 2022/6/20 4:36 下午 9 | */ 10 | @Data 11 | public class WxMinishopSpuGet implements Serializable { 12 | 13 | private static final long serialVersionUID = -957810527714924409L; 14 | 15 | private WxMinishopSpu spu; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopSpuGetResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author leiin 7 | * created on 2022/6/20 4:46 下午 8 | */ 9 | @Data 10 | public class WxMinishopSpuGetResponse extends WxMinishopResult { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopSpuListResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import java.util.List; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author leiin 9 | * created on 2022/6/20 4:46 下午 10 | */ 11 | @Data 12 | public class WxMinishopSpuListResponse extends WxMinishopResult { 13 | @SerializedName("total_num") 14 | private Long totalNum; 15 | 16 | private List spus; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/product/WxMinishopUpdateGoodsSkuData.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.product; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | 7 | @Data 8 | public class WxMinishopUpdateGoodsSkuData implements Serializable { 9 | private static final long serialVersionUID = -2596988603027040989L; 10 | @SerializedName("sku_id") 11 | private Long skuId; 12 | @SerializedName("out_sku_id") 13 | private String outSkuId; 14 | @SerializedName("update_time") 15 | private String updateTime; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/promoter/response/WxMaPromotionUpdatePromoterResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.promoter.response; 2 | 3 | import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author zhuangzibin 11 | */ 12 | 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | public class WxMaPromotionUpdatePromoterResponse extends WxMaBaseResponse implements Serializable { 16 | 17 | private static final long serialVersionUID = 4181066183104514177L; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/promoter/response/WxMaPromotionUpdateRoleResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.promoter.response; 2 | 3 | import cn.binarywang.wx.miniapp.bean.WxMaBaseResponse; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author zhuangzibin 11 | */ 12 | 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | public class WxMaPromotionUpdateRoleResponse extends WxMaBaseResponse implements Serializable { 16 | 17 | private static final long serialVersionUID = -7820893467305453782L; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/WxMaShopAccountGetInfo.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author liming1019 10 | * created on 2021/8/9 11 | */ 12 | @Data 13 | public class WxMaShopAccountGetInfo implements Serializable { 14 | /** 15 | * 品牌ID 16 | */ 17 | @SerializedName("brand_id") 18 | private Long brandId; 19 | 20 | /** 21 | * 品牌名称 22 | */ 23 | @SerializedName("brand_wording") 24 | private String brandWording; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/request/WxMaShopRegisterApplySceneRequest.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.request; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author liming1019 10 | * created on 2021/8/6 11 | */ 12 | @Data 13 | public class WxMaShopRegisterApplySceneRequest implements Serializable { 14 | 15 | private static final long serialVersionUID = -3008686013597621522L; 16 | /** 17 | * 1:视频号、公众号场景 18 | */ 19 | @SerializedName("scene_group_id") 20 | private Long sceneGroupId; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/response/WxMaOrderShippingInfoGetResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.response; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author xzh 10 | * created on 2023/5/17 17:01 11 | */ 12 | @Data 13 | public class WxMaOrderShippingInfoGetResponse extends WxMaOrderShippingInfoBaseResponse implements Serializable { 14 | private static final long serialVersionUID = -5414031943436195493L; 15 | 16 | /** 17 | * 支付单信息 18 | */ 19 | @SerializedName("order") 20 | private Order order; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/response/WxMaShopAfterSaleAddResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.response; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import java.io.Serializable; 5 | import lombok.Data; 6 | 7 | /** 8 | * @author leiin 9 | * created on 2022/6/28 11:29 上午 10 | */ 11 | @Data 12 | public class WxMaShopAfterSaleAddResponse extends WxMaShopBaseResponse implements Serializable { 13 | @SerializedName("aftersale_id") 14 | private String aftersaleId; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/response/WxMaShopAuditBrandResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.response; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author liming1019 11 | * created on 2021/8/12 12 | */ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | public class WxMaShopAuditBrandResponse extends WxMaShopBaseResponse implements Serializable { 16 | private static final long serialVersionUID = -4643316662725276237L; 17 | 18 | @SerializedName("audit_id") 19 | private String auditId; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/response/WxMaShopAuditCategoryResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.response; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.io.Serializable; 8 | 9 | /** 10 | * @author liming1019 11 | * created on 2021/8/12 12 | */ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | public class WxMaShopAuditCategoryResponse extends WxMaShopBaseResponse implements Serializable { 16 | private static final long serialVersionUID = -1822188134865177738L; 17 | 18 | @SerializedName("audit_id") 19 | private String auditId; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/shop/response/WxMaShopCouponResponse.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.bean.shop.response; 2 | 3 | import cn.binarywang.wx.miniapp.bean.shop.WxMaShopCouponInfo; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author leiin 8 | * created on 2022/7/1 3:34 下午 9 | */ 10 | @Data 11 | public class WxMaShopCouponResponse extends WxMaShopBaseResponse { 12 | private ResponseCouponResult result; 13 | 14 | @Data 15 | public static class ResponseCouponResult { 16 | private WxMaShopCouponInfo coupon; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/impl/WxMaRedisConnectionConfigImpl.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.config.impl; 2 | 3 | import lombok.RequiredArgsConstructor; 4 | import redis.clients.jedis.Jedis; 5 | 6 | /** 7 | * 基于Redis的微信配置provider. 使用自己管理的 Jedis 实例进行 Redis 操作。 8 | * 9 | *
10 |  * 需要引入依赖jedis-lock,才能使用该类。
11 |  * 
12 | */ 13 | @RequiredArgsConstructor 14 | public class WxMaRedisConnectionConfigImpl extends AbstractWxMaRedisConfig { 15 | private final Jedis jedis; 16 | 17 | @Override 18 | protected Jedis getJedis() { 19 | return jedis; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/message/WxMaMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.message; 2 | 3 | import cn.binarywang.wx.miniapp.bean.WxMaMessage; 4 | 5 | /** 6 | * 消息匹配器,用在消息路由的时候. 7 | * 8 | * @author Binary Wang 9 | */ 10 | public interface WxMaMessageMatcher { 11 | 12 | /** 13 | * 消息是否匹配某种模式. 14 | * 15 | * @param message 消息 16 | * @return 是否匹配 17 | */ 18 | boolean match(WxMaMessage message); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/AddOrderJsonTest.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.test; 2 | 3 | import cn.binarywang.wx.miniapp.bean.delivery.AddOrderRequest; 4 | import me.chanjar.weixin.common.util.json.WxGsonBuilder; 5 | import org.testng.annotations.Test; 6 | 7 | public class AddOrderJsonTest { 8 | 9 | /** 10 | * 验证转化Json时是否有deliverySign 11 | */ 12 | @Test 13 | public void test(){ 14 | AddOrderRequest request = new AddOrderRequest(); 15 | request.setShopId("1"); 16 | request.setAppSecret("2"); 17 | request.getDeliverySign(); 18 | System.out.printf(WxGsonBuilder.create().toJson(request)); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/TestConstants.java: -------------------------------------------------------------------------------- 1 | package cn.binarywang.wx.miniapp.test; 2 | 3 | /** 4 | *
 5 |  * 仅供测试使用的一些常量
 6 |  * Created by Binary Wang on 2017-3-9.
 7 |  * 
8 | */ 9 | public class TestConstants { 10 | /////////////////////// 11 | // 文件类型 12 | /////////////////////// 13 | public static final String FILE_JPG = "jpeg"; 14 | public static final String FILE_MP3 = "mp3"; 15 | public static final String FILE_AMR = "amr"; 16 | public static final String FILE_MP4 = "mp4"; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/resources/tmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-miniapp/src/test/resources/tmp.png -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/resources/wx-ma-jssecacerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-miniapp/src/test/resources/wx-ma-jssecacerts -------------------------------------------------------------------------------- /weixin-java-miniapp/src/test/resources/wx-mp-jssecacerts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-miniapp/src/test/resources/wx-mp-jssecacerts -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMessageMatcher.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.api; 2 | 3 | import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; 4 | 5 | /** 6 | * 消息匹配器,用在消息路由的时候 7 | */ 8 | public interface WxMpMessageMatcher { 9 | 10 | /** 11 | * 消息是否匹配某种模式 12 | * 13 | * @param message the message 14 | * @return the boolean 15 | */ 16 | boolean match(WxMpXmlMessage message); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpServiceImpl.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.api.impl; 2 | 3 | /** 4 | *
 5 |  * 默认接口实现类,使用apache httpclient实现
 6 |  * Created by Binary Wang on 2017-5-27.
 7 |  * 
8 | * 9 | * @author Binary Wang 10 | */ 11 | public class WxMpServiceImpl extends WxMpServiceHttpClientImpl { 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassVideo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 群发时用到的视频素材 10 | * 11 | * @author chanjarster 12 | */ 13 | @Data 14 | public class WxMpMassVideo implements Serializable { 15 | private static final long serialVersionUID = 9153925016061915637L; 16 | 17 | private String mediaId; 18 | private String title; 19 | private String description; 20 | 21 | public String toJson() { 22 | return WxMpGsonBuilder.create().toJson(this); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/AbstractCardCreateRequest.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * . 9 | * 10 | * @author leeis 11 | * created on 2018/12/29 12 | */ 13 | @Data 14 | public abstract class AbstractCardCreateRequest implements Serializable { 15 | private static final long serialVersionUID = -260291223712818801L; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/BaseWxMpCardResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 卡券返回结果基础类. 7 | * 8 | * @author fanxl 9 | * created on 2019/1/22 0022 10:08 10 | */ 11 | public class BaseWxMpCardResult implements Serializable { 12 | private static final long serialVersionUID = -3502867243738689870L; 13 | 14 | /** 15 | * 错误码 16 | */ 17 | private Integer errcode; 18 | 19 | /** 20 | * 错误信息 21 | */ 22 | private String errmsg; 23 | 24 | public boolean isSuccess() { 25 | return 0 == errcode; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/Card.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * . 10 | * @author leeis 11 | * created on 2018/12/29 12 | */ 13 | @Data 14 | public class Card implements Serializable { 15 | private static final long serialVersionUID = -3697110761983756780L; 16 | 17 | /** 18 | * 基本信息. 19 | */ 20 | @SerializedName("base_info") 21 | private BaseInfo baseInfo; 22 | 23 | /** 24 | * 创建优惠券特有的高级字段. 25 | */ 26 | @SerializedName("advanced_info") 27 | private AdvancedInfo advancedInfo; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/PayInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card; 2 | 3 | import java.io.Serializable; 4 | 5 | import com.google.gson.annotations.SerializedName; 6 | import lombok.Data; 7 | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; 8 | 9 | /** 10 | * 支付功能. 11 | * @author yuanqixun 12 | * date:2018-08-25 00:33 13 | */ 14 | @Data 15 | public class PayInfo implements Serializable { 16 | 17 | /** 18 | * 刷卡功能 19 | */ 20 | @SerializedName("swipe_card") 21 | private SwipeCard swipeCard; 22 | 23 | @Override 24 | public String toString() { 25 | return WxMpGsonBuilder.create().toJson(this); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/BusinessServiceType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | /** 4 | * 商户提供服务类型 5 | */ 6 | public enum BusinessServiceType { 7 | BIZ_SERVICE_DELIVER("外卖服务"), 8 | BIZ_SERVICE_FREE_PARK("停车位"), 9 | BIZ_SERVICE_WITH_PET("可带宠物"), 10 | BIZ_SERVICE_FREE_WIFI("可带宠物"); 11 | 12 | private final String description; 13 | 14 | BusinessServiceType(String description) { 15 | this.description = description; 16 | } 17 | 18 | public String getDescription() { 19 | return description; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/CardCodeType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | public enum CardCodeType { 4 | 5 | CODE_TYPE_TEXT("文本"), 6 | CODE_TYPE_NONE("不显示任何码型"), 7 | CODE_TYPE_ONLY_BARCODE("仅显示一维码"), 8 | CODE_TYPE_ONLY_QRCODE("仅显示二维码"), 9 | CODE_TYPE_BARCODE("一维码"), 10 | CODE_TYPE_QRCODE("二维码"); 11 | 12 | private final String description; 13 | 14 | CardCodeType(String description) { 15 | this.description = description; 16 | } 17 | 18 | public String getDescription() { 19 | return description; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/CardFieldType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | /** 4 | * 微信卡券激活字段类型 5 | * 6 | * @author yuanqixun 7 | * created on 2018-08-30 8 | */ 9 | public enum CardFieldType { 10 | COMMON_FIELD("微信选项"), 11 | CUSTOM_FIELD("自定义选项"), 12 | RICH_FIELD("自定义富文本类型"); 13 | 14 | private final String description; 15 | 16 | CardFieldType(String description) { 17 | this.description = description; 18 | } 19 | 20 | public String getDescription() { 21 | return description; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/CardRichFieldType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | /** 4 | * 会员卡富文本字段类型 5 | * 6 | * @author yuanqixun 7 | * created on 2018-08-30 8 | */ 9 | public enum CardRichFieldType { 10 | FORM_FIELD_RADIO("自定义单选"), 11 | FORM_FIELD_SELECT("自定义选择项"), 12 | FORM_FIELD_CHECK_BOX("自定义多选"); 13 | 14 | private final String description; 15 | 16 | CardRichFieldType(String description) { 17 | this.description = description; 18 | } 19 | 20 | public String getDescription() { 21 | return description; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/CardSceneType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | public enum CardSceneType { 4 | SCENE_NEAR_BY("附近"), 5 | SCENE_MENU("自定义菜单"), 6 | SCENE_QRCODE("二维码"), 7 | SCENE_ARTICLE("公众号文章"), 8 | SCENE_H5("H5"), 9 | SCENE_IVR("自动回复"), 10 | SCENE_CARD_CUSTOM_CELL("卡券自定义cell"); 11 | 12 | private final String description; 13 | 14 | CardSceneType(String description) { 15 | this.description = description; 16 | } 17 | 18 | public String getDescription() { 19 | return description; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/CardStatusType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | public enum CardStatusType { 4 | CARD_STATUS_NOT_VERIFY("待审核"), 5 | CARD_STATUS_VERIFY_FAIL("审核失败"), 6 | CARD_STATUS_VERIFY_OK("通过审核"), 7 | CARD_STATUS_DELETE("卡券被商户删除"), 8 | CARD_STATUS_DISPATCH("在公众平台投放过的卡券"); 9 | 10 | private final String description; 11 | 12 | CardStatusType(String description) { 13 | this.description = description; 14 | } 15 | 16 | public String getDescription() { 17 | return description; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/enums/DateInfoType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.enums; 2 | 3 | public enum DateInfoType { 4 | DATE_TYPE_PERMANENT("永久有效类型"), 5 | DATE_TYPE_FIX_TIME_RANGE("固定日期"), 6 | DATE_TYPE_FIX_TERM("固定时长"); 7 | 8 | private final String description; 9 | 10 | DateInfoType(String description) { 11 | this.description = description; 12 | } 13 | 14 | public String getDescription() { 15 | return description; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/membercard/ActivatePluginParam.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.membercard; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author yqx 8 | * created on 2018/9/19 9 | */ 10 | @Data 11 | public class ActivatePluginParam { 12 | 13 | @SerializedName("encrypt_card_id") 14 | String encryptCardId; 15 | 16 | @SerializedName("outer_str") 17 | String outerStr; 18 | 19 | @SerializedName("biz") 20 | String biz; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/membercard/ActivatePluginParamResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.membercard; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author yqx 7 | * created on 2018/9/19 8 | */ 9 | @Data 10 | public class ActivatePluginParamResult { 11 | 12 | private int errcode; 13 | 14 | private String errmsg; 15 | 16 | private String url; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/membercard/MemberCardUserInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.membercard; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author YuJian 9 | * created on 2017/7/11 10 | */ 11 | @Data 12 | public class MemberCardUserInfo implements Serializable { 13 | private static final long serialVersionUID = -4259196162619282129L; 14 | 15 | private NameValues[] commonFieldList; 16 | 17 | private NameValues[] customFieldList; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/membercard/NameValues.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.card.membercard; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 9 | * @author YuJian 10 | * created on 2017/7/11 11 | */ 12 | @Data 13 | public class NameValues implements Serializable{ 14 | private static final long serialVersionUID = -8529369702944594330L; 15 | 16 | private String name; 17 | 18 | private String value; 19 | 20 | private String[] valueList; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/AbstractDeviceBean.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.device; 2 | 3 | import me.chanjar.weixin.common.util.json.WxGsonBuilder; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 设备抽象类. 9 | * 10 | * @author keungtung 11 | * created on 14/12/2016 12 | */ 13 | public abstract class AbstractDeviceBean implements Serializable { 14 | private static final long serialVersionUID = 4359729626772515385L; 15 | 16 | public String toJson() { 17 | return WxGsonBuilder.create().toJson(this); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/RespMsg.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.device; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * 9 | * @author keungtung. 10 | * created on 10/12/2016 11 | */ 12 | @Data 13 | @EqualsAndHashCode(callSuper = false) 14 | public class RespMsg extends AbstractDeviceBean { 15 | private static final long serialVersionUID = -4241272701707684136L; 16 | 17 | @SerializedName("ret_code") 18 | private Integer retCode; 19 | @SerializedName("error_info") 20 | private String errorInfo; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceBind.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.device; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * @author keungtung. 9 | * created on 10/12/2016 10 | */ 11 | @Data 12 | @EqualsAndHashCode(callSuper = false) 13 | public class WxDeviceBind extends AbstractDeviceBean { 14 | private static final long serialVersionUID = 467559769037590880L; 15 | 16 | private String ticket; 17 | @SerializedName("device_id") 18 | private String deviceId; 19 | @SerializedName("openid") 20 | private String openId; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/invoice/merchant/InvoiceAuthPageResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.invoice.merchant; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 获取授权链接返回结果DTO 9 | * 10 | * @author Mario Luo 11 | */ 12 | @Data 13 | public class InvoiceAuthPageResult implements Serializable { 14 | private static final long serialVersionUID = 2922797121045894425L; 15 | 16 | /** 17 | * 授权页地址 18 | */ 19 | private String authUrl; 20 | 21 | /** 22 | * 当发起端为小程序时, 返回 23 | */ 24 | private String appid; 25 | } 26 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/invoice/merchant/MerchantContactInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.invoice.merchant; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 商户联系信息 10 | * 11 | * @author Mario Luo 12 | */ 13 | @Data 14 | public class MerchantContactInfo implements Serializable { 15 | private static final long serialVersionUID = -2008465944249686100L; 16 | 17 | /** 18 | * 联系电话 19 | */ 20 | private String phone; 21 | 22 | /** 23 | * 开票超时时间 24 | */ 25 | @SerializedName("time_out") 26 | private Integer timeout; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/invoice/merchant/MerchantContactInfoWrapper.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.invoice.merchant; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * 设置商户联系信息和发票过时时间参数 10 | * 11 | * @author Mario Luo 12 | */ 13 | @Data 14 | @AllArgsConstructor 15 | public class MerchantContactInfoWrapper implements Serializable { 16 | private static final long serialVersionUID = -5377979396495452212L; 17 | 18 | private MerchantContactInfo contact; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/invoice/merchant/MerchantInvoicePlatformInfoWrapper.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.invoice.merchant; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 设置商户联系信息和发票过时时间参数 9 | * 10 | * @author Mario Luo 11 | */ 12 | @Data 13 | public class MerchantInvoicePlatformInfoWrapper implements Serializable { 14 | private static final long serialVersionUID = 7994013978048258576L; 15 | 16 | private MerchantInvoicePlatformInfo paymchInfo; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/marketing/WxMpAdLeadInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.marketing; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author 007 10 | */ 11 | @Data 12 | public class WxMpAdLeadInfo implements Serializable { 13 | private static final long serialVersionUID = -6462312242780350479L; 14 | @SerializedName("key") 15 | private String key; 16 | @SerializedName("value") 17 | private String value; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMediaImgUploadResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.material; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author miller 10 | */ 11 | @Data 12 | public class WxMediaImgUploadResult implements Serializable { 13 | private static final long serialVersionUID = 1996392453428768829L; 14 | private String url; 15 | 16 | public static WxMediaImgUploadResult fromJson(String json) { 17 | return WxMpGsonBuilder.create().fromJson(json, WxMediaImgUploadResult.class); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/material/WxMpMaterialArticleUpdate.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.bean.material; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; 5 | 6 | import java.io.Serializable; 7 | 8 | @Data 9 | public class WxMpMaterialArticleUpdate implements Serializable { 10 | private static final long serialVersionUID = -7611963949517780270L; 11 | 12 | private String mediaId; 13 | private int index; 14 | private WxMpNewsArticle articles; 15 | 16 | public String toJson() { 17 | return WxMpGsonBuilder.create().toJson(this); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/builder/kefu/BaseBuilder.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.builder.kefu; 2 | 3 | import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; 4 | 5 | public class BaseBuilder { 6 | protected String msgType; 7 | protected String toUser; 8 | 9 | @SuppressWarnings("unchecked") 10 | public T toUser(String toUser) { 11 | this.toUser = toUser; 12 | return (T) this; 13 | } 14 | 15 | public WxMpKefuMessage build() { 16 | WxMpKefuMessage m = new WxMpKefuMessage(); 17 | m.setMsgType(this.msgType); 18 | m.setToUser(this.toUser); 19 | return m; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/AiLangType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | *
 7 |  *  AI开放接口里的语言类型,目前只支持两种:中文和英文
 8 |  *  Created by BinaryWang on 2018/6/10.
 9 |  * 
10 | * 11 | * @author Binary Wang 12 | */ 13 | @Getter 14 | public enum AiLangType { 15 | /** 16 | * 中文 汉语. 17 | */ 18 | zh_CN("zh_CN"), 19 | /** 20 | * 英文 英语. 21 | */ 22 | en_US("en_US"); 23 | 24 | private final String code; 25 | 26 | AiLangType(String code) { 27 | this.code = code; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxCardType.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.enums; 2 | 3 | /** 4 | * 微信卡券类型. 5 | * 6 | * @author chenyixin 7 | * created on 2019-09-07 23:33 8 | **/ 9 | public enum WxCardType { 10 | MEMBER_CARD("MEMBER_CARD"), 11 | GROUPON("GROUPON"), 12 | CASH("CASH"), 13 | DISCOUNT("DISCOUNT"), 14 | GIFT("GIFT"), 15 | GENERAL_COUPON("GENERAL_COUPON"); 16 | 17 | private final String code; 18 | 19 | WxCardType(String code) { 20 | this.code = code; 21 | } 22 | 23 | public String getCode() { 24 | return code; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/WxMpConfigStorageHolder.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.util; 2 | 3 | /** 4 | * @author yd 5 | * created on 2019-03-20 22:06 6 | */ 7 | public class WxMpConfigStorageHolder { 8 | private static final ThreadLocal THREAD_LOCAL = ThreadLocal.withInitial(() -> "default"); 9 | 10 | public static String get() { 11 | return THREAD_LOCAL.get(); 12 | } 13 | 14 | public static void set(String label) { 15 | THREAD_LOCAL.set(label); 16 | } 17 | 18 | /** 19 | * 此方法需要用户根据自己程序代码,在适当位置手动触发调用,本SDK里无法判断调用时机 20 | */ 21 | public static void remove() { 22 | THREAD_LOCAL.remove(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/test/TestConstants.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.mp.api.test; 2 | 3 | /** 4 | *
 5 |  * 仅供测试使用的一些常量
 6 |  * Created by Binary Wang on 2017-3-9.
 7 |  * 
8 | */ 9 | public class TestConstants { 10 | /////////////////////// 11 | // 文件类型 12 | /////////////////////// 13 | public static final String FILE_JPG = "jpeg"; 14 | public static final String FILE_MP3 = "mp3"; 15 | public static final String FILE_AMR = "amr"; 16 | public static final String FILE_MP4 = "mp4"; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/0.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-mp/src/test/resources/0.jpeg -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-mp/src/test/resources/1.jpeg -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/mm.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-mp/src/test/resources/mm.jpeg -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/mm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-mp/src/test/resources/mm.mp3 -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/mm.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/binarywang/WxJava/84c69d4900ff94bb919c71d27c5ff8e2c73bd8ac/weixin-java-mp/src/test/resources/mm.mp4 -------------------------------------------------------------------------------- /weixin-java-mp/src/test/resources/test-config.sample.xml: -------------------------------------------------------------------------------- 1 | 2 | 公众号appID 3 | 公众号appsecret 4 | 公众号Token 5 | 公众号EncodingAESKey 6 | 可以不填写 7 | 可以不填写 8 | 某个加你公众号的用户的openId 9 | 微信商户平台ID 10 | 商户平台设置的API密钥 11 | 商户平台的证书文件地址 12 | 模版消息的模版ID 13 | 网页授权获取用户信息回调地址 14 | 网页应用授权登陆回调地址 15 | 完整客服账号,格式为:账号前缀@公众号微信号 16 | 17 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceImpl.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.api.impl; 2 | 3 | /** 4 | * @author 007 5 | */ 6 | public class WxOpenServiceImpl extends WxOpenServiceApacheHttpClientImpl { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/MaAuthQueryIdentityTreeResultIdentityLeaf.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.auth; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | 6 | /** 7 | * 职业身份叶子信息 8 | * 9 | * @author 广州跨界 10 | * created on 2024/01/11 11 | */ 12 | @Data 13 | @NoArgsConstructor 14 | public class MaAuthQueryIdentityTreeResultIdentityLeaf { 15 | 16 | /** 17 | * 要求说明 18 | */ 19 | private String requirement; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/MaAuthResubmitParamAuthData.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.auth; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | /** 9 | * 小程序认证 重新提交操作 认证参数 10 | * 11 | * @author 广州跨界 12 | * created on 2024/01/11 13 | */ 14 | @Getter 15 | @Setter 16 | public class MaAuthResubmitParamAuthData extends MaAuthSubmitParamAuthData { 17 | 18 | /** 19 | * 认证任务id 20 | */ 21 | @NotNull 22 | @SerializedName("taskid") 23 | private String taskId; 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/MaAuthSubmitParamContactInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.auth; 2 | 3 | import lombok.Data; 4 | import lombok.NoArgsConstructor; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | /** 8 | * 联系人信息 9 | * 10 | * @author 广州跨界 11 | * created on 2024/01/11 12 | */ 13 | @Data 14 | @NoArgsConstructor 15 | public class MaAuthSubmitParamContactInfo { 16 | 17 | /** 18 | * 姓名 19 | */ 20 | @NotNull 21 | private String name; 22 | 23 | /** 24 | * 邮箱 25 | */ 26 | @NotNull 27 | private String email; 28 | } 29 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenAuthorizationInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.auth; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * @author 007 10 | */ 11 | @Data 12 | public class WxOpenAuthorizationInfo implements Serializable { 13 | private static final long serialVersionUID = -8713680081354754208L; 14 | 15 | private String authorizerAppid; 16 | private String authorizerAccessToken; 17 | private int expiresIn; 18 | private String authorizerRefreshToken; 19 | private List funcInfo; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/auth/WxOpenMiniProgramInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.auth; 2 | 3 | import lombok.Data; 4 | import org.apache.commons.lang3.tuple.Pair; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | @Data 10 | public class WxOpenMiniProgramInfo { 11 | private Map> network; 12 | private List> categories; 13 | private Integer visitStatus; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaOpenNetworkTimeout.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author yqx 9 | * created on 2018/9/13 10 | */ 11 | @Data 12 | public class WxMaOpenNetworkTimeout implements Serializable { 13 | 14 | private Integer request; 15 | 16 | private Integer connectSocket; 17 | 18 | private Integer uploadFile; 19 | 20 | private Integer downloadFile; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaOpenPage.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author yqx 9 | * created on 2018/9/13 10 | */ 11 | @Data 12 | public class WxMaOpenPage implements Serializable { 13 | private String navigationBarBackgroundColor; 14 | private String navigationBarTextStyle; 15 | private String navigationBarTitleText; 16 | private String backgroundColor; 17 | private String backgroundTextStyle; 18 | private Boolean enablePullDownRefresh; 19 | private Integer onReachBottomDistance; 20 | private Boolean disableScroll; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaOpenSubpackage.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import lombok.Builder; 4 | import lombok.Data; 5 | 6 | /** 7 | * @author momorans 8 | * @since 2019-03-12 9 | **/ 10 | @Data 11 | @Builder 12 | public class WxMaOpenSubpackage { 13 | /** 14 | * 分包根目录 15 | */ 16 | private String root; 17 | 18 | /** 19 | * 分包别名,分包预下载时可以使用 20 | */ 21 | private String name; 22 | 23 | 24 | /** 25 | * 分包页面路径,相对与分包根目录 26 | */ 27 | private String pages; 28 | 29 | /** 30 | * 分包是否是独立分包 31 | */ 32 | private Boolean independent; 33 | 34 | 35 | } 36 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaPrefetchDomain.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | import java.util.List; 8 | 9 | /** 10 | * @author 清心 11 | * create on 2022-10-01 18:07 12 | */ 13 | @Data 14 | public class WxMaPrefetchDomain implements Serializable { 15 | private static final long serialVersionUID = 1593947263587362155L; 16 | 17 | @SerializedName("prefetch_dns_domain") 18 | private List prefetchDnsDomain; 19 | 20 | @Data 21 | public static class DnsDomain { 22 | private String url; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxMaScheme.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import me.chanjar.weixin.open.bean.result.WxOpenResult; 6 | 7 | @Data 8 | @EqualsAndHashCode(callSuper = true) 9 | public class WxMaScheme extends WxOpenResult { 10 | private static final long serialVersionUID = 6099475183322341647L; 11 | 12 | private String openlink; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/WxOpenMaMember.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 微信开放平台小程序成员对象 9 | * 10 | * @author yqx 11 | * created on 2018/9/12 12 | */ 13 | @Data 14 | public class WxOpenMaMember implements Serializable { 15 | /** 16 | * 人员对应的唯一字符串 17 | */ 18 | private String userstr; 19 | } 20 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/privacy/ApplyPrivacyInterfaceResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma.privacy; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import me.chanjar.weixin.open.bean.result.WxOpenResult; 7 | 8 | /** 9 | * 获取接口列表 响应 10 | * 11 | * @author 广州跨界 12 | */ 13 | @Getter 14 | @Setter 15 | public class ApplyPrivacyInterfaceResult extends WxOpenResult { 16 | 17 | /** 18 | * 审核ID 19 | */ 20 | @SerializedName("audit_id") 21 | private Long auditId; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/ma/privacy/UploadPrivacyFileResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.ma.privacy; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import me.chanjar.weixin.open.bean.result.WxOpenResult; 7 | 8 | /** 9 | * 上传小程序用户隐私保护指引文件 响应 10 | * 11 | * @author 广州跨界 12 | */ 13 | @Getter 14 | @Setter 15 | public class UploadPrivacyFileResult extends WxOpenResult { 16 | 17 | /** 18 | * 文件的media_id 19 | */ 20 | @SerializedName("ext_file_media_id") 21 | private String extFileMediaId; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopBrandList.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | @Data 9 | public class MinishopBrandList implements Serializable { 10 | private static final long serialVersionUID = -8508031421949817741L; 11 | 12 | private Integer errcode; 13 | 14 | private String errmsg; 15 | 16 | private List brands; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopCategories.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | @Data 9 | public class MinishopCategories implements Serializable { 10 | private static final long serialVersionUID = 7273326128218540329L; 11 | 12 | private Integer errcode; 13 | 14 | private String errmsg; 15 | 16 | private List catList; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopCategory.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class MinishopCategory implements Serializable { 9 | private static final long serialVersionUID = -4843799448671123177L; 10 | 11 | private Integer catId; 12 | 13 | private Integer fCatId; 14 | 15 | private String name; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopDeliveryTemplate.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class MinishopDeliveryTemplate implements Serializable { 9 | private static final long serialVersionUID = 6408833494371482534L; 10 | 11 | public enum ValuationType { 12 | PACKAGE, 13 | WEIGHT 14 | } 15 | 16 | private Integer templateId; 17 | 18 | private String name; 19 | 20 | private ValuationType valuationType; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopShopCat.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 店铺的商品分类 9 | */ 10 | @Data 11 | public class MinishopShopCat implements Serializable { 12 | private static final long serialVersionUID = 4179473856929659641L; 13 | 14 | private Integer shopCatId; 15 | 16 | private String shopCatName; 17 | 18 | private Integer fShopCatId; 19 | 20 | private Integer catLevel; 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/MinishopShopCatList.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | @Data 9 | public class MinishopShopCatList implements Serializable { 10 | private static final long serialVersionUID = 8718853679902050471L; 11 | 12 | private Integer errcode; 13 | 14 | private String errmsg; 15 | 16 | private List shopCatList; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/coupon/WxMinishopCouponResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.coupon; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * 小商店优惠券请求回复数据信息 10 | */ 11 | @Data 12 | public class WxMinishopCouponResponse implements Serializable { 13 | private static final long serialVersionUID = 1579611003616556089L; 14 | 15 | /** 16 | * 错误码 17 | */ 18 | private Integer errcode; 19 | 20 | /** 21 | * 错误信息 22 | */ 23 | private String errmsg; 24 | 25 | /** 26 | * 优惠券信息 27 | */ 28 | private List coupons; 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/coupon/WxMinishopCouponStockInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.coupon; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 小商店优惠券消耗信息 9 | */ 10 | @Data 11 | public class WxMinishopCouponStockInfo implements Serializable { 12 | private static final long serialVersionUID = 7690057714224606954L; 13 | 14 | /** 15 | * 优惠券发放量 16 | */ 17 | private Integer issuedNum; 18 | 19 | /** 20 | * 优惠券领用量 21 | */ 22 | private Integer receiveNum; 23 | 24 | /** 25 | * 优惠券已用量 26 | */ 27 | private Integer usedNum; 28 | } 29 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/goods/WxMinishopAddGoodsSkuData.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.goods; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopAddGoodsSkuData implements Serializable { 9 | private static final long serialVersionUID = -2596988603027040989L; 10 | private Long skuId; 11 | 12 | private String createTime; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/goods/WxMinishopAddGoodsSpuData.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.goods; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopAddGoodsSpuData implements Serializable { 9 | private static final long serialVersionUID = 2023708625713948192L; 10 | private Long productId; 11 | 12 | private String outProductId; 13 | 14 | private String createTime; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/goods/WxMinishopAddGoodsSpuResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.goods; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopAddGoodsSpuResult implements Serializable { 9 | private static final long serialVersionUID = 4323118714581265968L; 10 | private Integer errcode; 11 | 12 | private String errmsg; 13 | 14 | private T data; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishop/goods/WxMinishopDeliveryCompany.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishop.goods; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | @Data 8 | public class WxMinishopDeliveryCompany implements Serializable { 9 | private static final long serialVersionUID = 3736970376549639779L; 10 | private String deliveryId; 11 | 12 | private String deliveryName; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishopgoods/ExpressInfo.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishopgoods; 2 | 3 | import com.google.gson.JsonObject; 4 | import lombok.Data; 5 | import lombok.experimental.Accessors; 6 | 7 | @Data 8 | @Accessors(chain = true) 9 | public class ExpressInfo { 10 | /** 11 | * 运费模板ID(先通过获取运费模板接口delivery/get_freight_template拿到) 12 | */ 13 | private Integer templateId; 14 | 15 | 16 | public JsonObject toJsonObject() { 17 | JsonObject jsonObject = new JsonObject(); 18 | jsonObject.addProperty("template_id", templateId); 19 | return jsonObject; 20 | } 21 | 22 | 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/minishopgoods/ParentCatId.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.minishopgoods; 2 | 3 | import com.google.gson.JsonObject; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class ParentCatId { 8 | private Integer fCatId; 9 | 10 | public JsonObject toJsonObject() { 11 | JsonObject jsonObject = new JsonObject(); 12 | jsonObject.addProperty("f_cat_id", fCatId); 13 | return jsonObject; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerListResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * @author robgao 10 | */ 11 | @Data 12 | public class WxOpenAuthorizerListResult { 13 | private int totalCount; 14 | private List> list; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenAuthorizerOptionResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author 007 9 | */ 10 | @Data 11 | public class WxOpenAuthorizerOptionResult implements Serializable { 12 | private static final long serialVersionUID = 4477837353654658179L; 13 | 14 | String authorizerAppid; 15 | String optionName; 16 | String optionValue; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaApplyLiveInfoResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * @author 清心 9 | * created at 2022-10-04 16:11 10 | */ 11 | @EqualsAndHashCode(callSuper = true) 12 | @Data 13 | public class WxOpenMaApplyLiveInfoResult extends WxOpenResult{ 14 | 15 | @SerializedName("action") 16 | private String action; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaSubmitAuditResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | /** 8 | * 微信开放平台小程序发布代码审核结果. 9 | * 10 | * @author yqx 11 | * created on 2018/9/12 12 | */ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | public class WxOpenMaSubmitAuditResult extends WxOpenResult { 16 | private static final long serialVersionUID = 7431725910039734365L; 17 | 18 | /** 19 | * 审核编号. 20 | */ 21 | @SerializedName("auditid") 22 | Long auditId; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenMaWebDomainResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | @EqualsAndHashCode(callSuper = true) 11 | public class WxOpenMaWebDomainResult extends WxOpenResult { 12 | 13 | private static final long serialVersionUID = -2182687859448940313L; 14 | 15 | @SerializedName("webviewdomain") 16 | List webviewdomainList; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenQueryAuthResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.open.bean.auth.WxOpenAuthorizationInfo; 5 | 6 | import java.io.Serializable; 7 | 8 | /** 9 | * @author 007 10 | */ 11 | @Data 12 | public class WxOpenQueryAuthResult implements Serializable { 13 | private static final long serialVersionUID = 2394736235020206855L; 14 | 15 | private WxOpenAuthorizationInfo authorizationInfo; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterBetaWeappResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | @Data 8 | @EqualsAndHashCode(callSuper = true) 9 | public class WxOpenRegisterBetaWeappResult extends WxOpenResult { 10 | @SerializedName("authorize_url") 11 | private String authorizeUrl; 12 | @SerializedName("unique_id") 13 | protected String uniqueId; 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/result/WxOpenRegisterPersonalWeappResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.result; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | 7 | @Data 8 | @EqualsAndHashCode(callSuper = true) 9 | public class WxOpenRegisterPersonalWeappResult extends WxOpenResult { 10 | private String taskid; 11 | @SerializedName("authorize_url") 12 | private String authorizeUrl; 13 | @SerializedName("status") 14 | private Integer status; 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/shoppingOrders/WxOpenShoppingInfoVerifyUploadResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.shoppingOrders; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import me.chanjar.weixin.open.bean.result.WxOpenResult; 7 | 8 | @Data 9 | @EqualsAndHashCode(callSuper = true) 10 | public class WxOpenShoppingInfoVerifyUploadResult extends WxOpenResult { 11 | 12 | private static final long serialVersionUID = -3223834939130803964L; 13 | /** 14 | * 验证结果 15 | */ 16 | @SerializedName("verify_result") 17 | private String verifyResult; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-open/src/main/java/me/chanjar/weixin/open/bean/shoppingOrders/WxOpenShoppingOrdersConfirmResult.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.bean.shoppingOrders; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import me.chanjar.weixin.open.bean.result.WxOpenResult; 7 | 8 | @Data 9 | @EqualsAndHashCode(callSuper = true) 10 | public class WxOpenShoppingOrdersConfirmResult extends WxOpenResult { 11 | private static final long serialVersionUID = 8534868743462740891L; 12 | /** 13 | * 最近一次审核的结果 14 | */ 15 | @SerializedName("last_result") 16 | private String lastResult; 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-open/src/test/java/me/chanjar/weixin/open/test/TestConfigStorage.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.open.test; 2 | 3 | import com.thoughtworks.xstream.annotations.XStreamAlias; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage; 7 | 8 | @Getter 9 | @Setter 10 | @XStreamAlias("xml") 11 | public class TestConfigStorage extends WxOpenInMemoryConfigStorage { 12 | 13 | private String testMpAppId; 14 | 15 | private String testMaAppId; 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-open/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-open/src/test/resources/test-config.sample.xml: -------------------------------------------------------------------------------- 1 | 2 | 第三方平台appID 3 | 第三方平台appsecret 4 | 第三方平台appsecret 5 | 微信服务器推送过来的ticket 6 | 第三方平台Token 7 | 第三方平台EncodingAESKey 8 | 测试公众号 9 | 测试小程序 10 | 11 | -------------------------------------------------------------------------------- /weixin-java-open/src/test/resources/testng.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyconfirm/enums/AuthorizeStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyconfirm.enums; 2 | 3 | 4 | /** 5 | * 授权状态枚举类 6 | */ 7 | public enum AuthorizeStateEnum { 8 | /** 9 | * 未授权 10 | */ 11 | AUTHORIZE_STATE_UNAUTHORIZED, 12 | 13 | /** 14 | * 已授权 15 | */ 16 | AUTHORIZE_STATE_AUTHORIZED, 17 | ; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/AccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | 4 | /** 5 | * 银行结算账户枚举类 6 | */ 7 | public enum AccountTypeEnum { 8 | /** 9 | * 对公银行账户 10 | */ 11 | ACCOUNT_TYPE_BUSINESS, 12 | 13 | /** 14 | * 经营者个人银行卡 15 | */ 16 | ACCOUNT_TYPE_PRIVATE, 17 | ; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/BankAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | 4 | /** 5 | * 银行结算账户枚举类 6 | */ 7 | public enum BankAccountTypeEnum { 8 | /** 9 | * 对公银行账户 10 | */ 11 | BANK_ACCOUNT_TYPE_CORPORATE, 12 | 13 | /** 14 | * 经营者个人银行卡 15 | */ 16 | BANK_ACCOUNT_TYPE_PERSONAL, 17 | ; 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/MicroBizTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | /** 4 | * 小微经营类型 5 | */ 6 | public enum MicroBizTypeEnum { 7 | /** 8 | * 门店场所 9 | */ 10 | MICRO_TYPE_STORE, 11 | /** 12 | * 流动经营/便民服务 13 | */ 14 | MICRO_TYPE_MOBILE, 15 | /** 16 | * 线上商品/服务交易 17 | */ 18 | MICRO_TYPE_ONLINE, 19 | ; 20 | } 21 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/SalesScenesTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | /** 4 | * 经营场景类型枚举值 5 | */ 6 | public enum SalesScenesTypeEnum { 7 | /** 8 | * 线下门店 9 | */ 10 | SALES_SCENES_STORE, 11 | /** 12 | * 公众号 13 | */ 14 | SALES_SCENES_MP, 15 | /** 16 | * 小程序 17 | */ 18 | SALES_SCENES_MINI_PROGRAM, 19 | /** 20 | * 互联网 21 | */ 22 | SALES_SCENES_WEB, 23 | /** 24 | * APP 25 | */ 26 | SALES_SCENES_APP, 27 | /** 28 | * 企业微信 29 | */ 30 | SALES_SCENES_WEWORK, 31 | ; 32 | } 33 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/SettlementVerifyResultEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | /** 4 | * 返回特约商户的结算账户-汇款验证结果枚举类 5 | * 6 | * @author zhouyognshen 7 | */ 8 | public enum SettlementVerifyResultEnum { 9 | /** 10 | * 系统汇款验证中,商户可发起提现尝试。 11 | */ 12 | VERIFYING, 13 | /** 14 | * 系统成功汇款,该账户可正常发起提现。 15 | */ 16 | VERIFY_SUCCESS, 17 | /** 18 | * 系统汇款失败,该账户无法发起提现,请检查修改。 19 | */ 20 | VERIFY_FAIL, 21 | ; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/applyment/enums/SettlementVerifyStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.applyment.enums; 2 | 3 | /** 4 | * 结算账户修改审核状态 5 | **/ 6 | public enum SettlementVerifyStateEnum { 7 | /** 8 | * 审核成功 9 | */ 10 | AUDIT_SUCCESS, 11 | 12 | /** 13 | * 审核中 14 | */ 15 | AUDITING, 16 | 17 | /** 18 | * 审核驳回 19 | */ 20 | AUDIT_FAIL, 21 | ; 22 | } 23 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/enums/FundBillTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.ecommerce.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * 账单类型 8 | * 9 | * @author f00lish 10 | * created on 2020/09/28 11 | */ 12 | @Getter 13 | @AllArgsConstructor 14 | public enum FundBillTypeEnum { 15 | 16 | /** 17 | * 资金账单 18 | */ 19 | FUND_FLOW_BILL("%s/v3/bill/fundflowbill?%s"), 20 | /** 21 | * 二级商户资金账单 22 | */ 23 | SUB_FUND_FLOW_BILL("%s/v3/ecommerce/bill/fundflowbill?%s"); 24 | 25 | /** 26 | * url 27 | */ 28 | private final String url; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/enums/SpAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.ecommerce.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * 服务商账户类型 8 | * 9 | * @author f00lish 10 | * created on 2020/09/12 11 | */ 12 | @Getter 13 | @AllArgsConstructor 14 | public enum SpAccountTypeEnum { 15 | 16 | /** 17 | * 基本账户 18 | */ 19 | BASIC("BASIC"), 20 | /** 21 | * 运营账户 22 | */ 23 | OPERATION("OPERATION"), 24 | /** 25 | * 手续费账户 26 | */ 27 | FEES("FEES"); 28 | 29 | /** 30 | * 账户类型 31 | */ 32 | private final String value; 33 | } 34 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/marketing/enums/StockTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.marketing.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * 批次类型 8 | * 9 | * @author yujam 10 | */ 11 | @Getter 12 | @AllArgsConstructor 13 | public enum StockTypeEnum { 14 | 15 | /** 16 | * NORMAL:固定面额满减券批次 17 | */ 18 | NORMAL("NORMAL"), 19 | 20 | /** 21 | * DISCOUNT:折扣券批次 22 | */ 23 | DISCOUNT("DISCOUNT"), 24 | 25 | /** 26 | * EXCHANGE:换购券批次 27 | */ 28 | EXCHANGE("EXCHANGE"); 29 | 30 | /** 31 | * 批次类型 32 | */ 33 | private final String value; 34 | } 35 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayBaseNotifyV3Result.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.notify; 2 | 3 | /** 4 | * 微信支付公用回调 5 | * 6 | * @author Pursuer 7 | * @version 1.0 8 | * @date 2023/6/15 9 | */ 10 | public interface WxPayBaseNotifyV3Result { 11 | /** 12 | * 设置原始数据 13 | * 14 | * @param rawData 原始数据 15 | * @author Pursuer 16 | * @date 2023/6/15 17 | * @since 1.0 18 | **/ 19 | void setRawData(OriginNotifyResponse rawData); 20 | 21 | /** 22 | * 解密后的数据 23 | * 24 | * @param data 解密后的数据 25 | * @author Pursuer 26 | * @date 2023/6/15 27 | * @since 1.0 28 | **/ 29 | void setResult(T data); 30 | } 31 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/enums/SignPlanServiceOrderStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.payscore.enums; 2 | 3 | /** 4 | * @author UltramanNoa 5 | * @className SignPlanServiceOrderStateEnum 6 | * @description 签约计划服务订单状态 7 | * @createTime 2023/11/3 15:28 8 | **/ 9 | public enum SignPlanServiceOrderStateEnum { 10 | 11 | /** 12 | * 商户已创建服务订单 13 | */ 14 | CREATED, 15 | 16 | /** 17 | * 服务订单进行中 18 | */ 19 | DOING, 20 | 21 | /** 22 | * 服务订单完成 23 | */ 24 | DONE, 25 | 26 | /** 27 | * 商户取消服务订单 28 | */ 29 | REVOKED, 30 | 31 | /** 32 | * 服务订单已失效 33 | */ 34 | EXPIRED, 35 | ; 36 | } 37 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/payscore/enums/UserSignPlanCancelSignTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.payscore.enums; 2 | 3 | /** 4 | * @author UltramanNoa 5 | * @className UserSignPlanCancelSignTypeEnum 6 | * @description 签约计划取消类型 7 | * @createTime 2023/11/3 17:15 8 | **/ 9 | public enum UserSignPlanCancelSignTypeEnum { 10 | /** 11 | * 用户已签约协议未取消 12 | */ 13 | NOT_CANCEL, 14 | 15 | /** 16 | * 用户取消已签约的协议 17 | */ 18 | USER, 19 | 20 | /** 21 | * 商户取消已签约的协议 22 | */ 23 | MERCHANT, 24 | 25 | /** 26 | * 用户解除服务授权时取消服务下的已签约协议 27 | */ 28 | REVOKE_SERVICE, 29 | ; 30 | } 31 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/config/HttpClientBuilderCustomizer.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.config; 2 | 3 | import org.apache.http.impl.client.HttpClientBuilder; 4 | 5 | /** 6 | * @author dagewang 7 | */ 8 | @FunctionalInterface 9 | public interface HttpClientBuilderCustomizer { 10 | void customize(HttpClientBuilder var1); 11 | } 12 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxPayServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.service.impl; 2 | 3 | /** 4 | *
 5 |  * 微信支付接口请求实现类,默认使用Apache HttpClient实现
 6 |  * Created by Binary Wang on 2017-7-8.
 7 |  * 
8 | * 9 | * @author Binary Wang 10 | */ 11 | public class WxPayServiceImpl extends WxPayServiceApacheHttpImpl { 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/Credentials.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3; 2 | 3 | import java.io.IOException; 4 | 5 | import org.apache.http.client.methods.HttpRequestWrapper; 6 | 7 | public interface Credentials { 8 | 9 | String getSchema(); 10 | 11 | String getToken(HttpRequestWrapper request) throws IOException; 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/SpecEncrypt.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * 敏感信息字段 10 | * @author zhouyognshen 11 | **/ 12 | @Target({ElementType.FIELD}) 13 | @Retention(RetentionPolicy.RUNTIME) 14 | public @interface SpecEncrypt { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/Validator.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3; 2 | 3 | import java.io.IOException; 4 | import org.apache.http.client.methods.CloseableHttpResponse; 5 | 6 | public interface Validator { 7 | boolean validate(CloseableHttpResponse response) throws IOException; 8 | } 9 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/WxPayV3DownloadHttpGet.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3; 2 | 3 | 4 | import org.apache.http.client.methods.HttpGet; 5 | 6 | import java.net.URI; 7 | 8 | public class WxPayV3DownloadHttpGet extends HttpGet { 9 | 10 | 11 | public WxPayV3DownloadHttpGet() { 12 | } 13 | 14 | public WxPayV3DownloadHttpGet(URI uri) { 15 | super(uri); 16 | } 17 | 18 | public WxPayV3DownloadHttpGet(String uri) { 19 | super(uri); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/Signer.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3.auth; 2 | 3 | public interface Signer { 4 | SignatureResult sign(byte[] message); 5 | 6 | class SignatureResult { 7 | String sign; 8 | String certificateSerialNumber; 9 | 10 | public SignatureResult(String sign, String serialNumber) { 11 | this.sign = sign; 12 | this.certificateSerialNumber = serialNumber; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/auth/Verifier.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.v3.auth; 2 | 3 | import java.security.cert.X509Certificate; 4 | 5 | public interface Verifier { 6 | boolean verify(String serialNumber, byte[] message, String signature); 7 | 8 | 9 | X509Certificate getValidCertificate(); 10 | 11 | default void setOtherVerifier(Verifier verifier) {}; 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequestTest.java: -------------------------------------------------------------------------------- 1 | package com.github.binarywang.wxpay.bean.entpay; 2 | 3 | import org.testng.annotations.Test; 4 | 5 | /** 6 | * . 7 | * 8 | * @author Binary Wang 9 | * created on 2019-08-18 10 | */ 11 | public class EntPayRequestTest { 12 | 13 | @Test 14 | public void testToString() { 15 | System.out.println(EntPayRequest.newBuilder().mchId("123").build().toString()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /weixin-java-pay/src/test/resources/.gitignore: -------------------------------------------------------------------------------- 1 | *.p12 2 | -------------------------------------------------------------------------------- /weixin-java-pay/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/api/WxQidianCallDataService.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.api; 2 | 3 | import me.chanjar.weixin.common.error.WxErrorException; 4 | import me.chanjar.weixin.qidian.bean.call.GetSwitchBoardListResponse; 5 | 6 | /** 7 | * 通话数据相关操作接口. 8 | * 9 | * @author alegria 10 | */ 11 | public interface WxQidianCallDataService { 12 | public GetSwitchBoardListResponse getSwitchBoardList() throws WxErrorException; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/api/WxQidianDialService.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.api; 2 | 3 | import me.chanjar.weixin.common.error.WxErrorException; 4 | import me.chanjar.weixin.qidian.bean.dial.IVRDialRequest; 5 | import me.chanjar.weixin.qidian.bean.dial.IVRDialResponse; 6 | import me.chanjar.weixin.qidian.bean.dial.IVRListResponse; 7 | 8 | /** 9 | * 基础话务相关操作接口. 10 | * 11 | * @author alegria 12 | */ 13 | public interface WxQidianDialService { 14 | IVRDialResponse ivrDial(IVRDialRequest ivrDial) throws WxErrorException; 15 | 16 | IVRListResponse getIVRList() throws WxErrorException; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/api/impl/WxQidianServiceImpl.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.api.impl; 2 | 3 | /** 4 | *
 5 |  * 默认接口实现类,使用apache httpclient实现
 6 |  * Created by Binary Wang on 2017-5-27.
 7 |  * 
8 | * 9 | * @author Binary Wang 10 | */ 11 | public class WxQidianServiceImpl extends WxQidianServiceHttpClientImpl { 12 | } 13 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/bean/call/GetSwitchBoardListResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.bean.call; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.common.util.json.WxGsonBuilder; 5 | import me.chanjar.weixin.qidian.bean.common.QidianResponse; 6 | 7 | @Data 8 | public class GetSwitchBoardListResponse extends QidianResponse { 9 | private SwitchBoardList data; 10 | 11 | public static GetSwitchBoardListResponse fromJson(String result) { 12 | return WxGsonBuilder.create().fromJson(result, GetSwitchBoardListResponse.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/bean/call/SwitchBoard.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.bean.call; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class SwitchBoard { 7 | private String switchboard; 8 | private String createTime; 9 | private Boolean callinStatus; 10 | private Boolean calloutStatus; 11 | private String spName; 12 | private String cityName; 13 | } 14 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/bean/call/SwitchBoardList.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.bean.call; 2 | 3 | import java.util.List; 4 | import java.util.stream.Collectors; 5 | 6 | import lombok.Data; 7 | 8 | @Data 9 | public class SwitchBoardList { 10 | private List records; 11 | 12 | public List switchBoards() { 13 | return records.stream().map(SwitchBoard::getSwitchboard).collect(Collectors.toList()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/bean/dial/IVRListResponse.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.bean.dial; 2 | 3 | import lombok.Data; 4 | import me.chanjar.weixin.common.util.json.WxGsonBuilder; 5 | import me.chanjar.weixin.qidian.bean.common.QidianResponse; 6 | 7 | import java.util.List; 8 | 9 | @Data 10 | public class IVRListResponse extends QidianResponse { 11 | private List node; 12 | 13 | public static IVRListResponse fromJson(String json) { 14 | return WxGsonBuilder.create().fromJson(json, IVRListResponse.class); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/bean/dial/Ivr.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.bean.dial; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Ivr { 7 | private String ivr_id; 8 | private String ivr_name; 9 | } 10 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/WxQidianConfigStorageHolder.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.util; 2 | 3 | /** 4 | * @author alegria 5 | * created on 2020年12月26日 6 | */ 7 | public class WxQidianConfigStorageHolder { 8 | private static final ThreadLocal THREAD_LOCAL = ThreadLocal.withInitial(() -> "default"); 9 | 10 | public static String get() { 11 | return THREAD_LOCAL.get(); 12 | } 13 | 14 | public static void set(String label) { 15 | THREAD_LOCAL.set(label); 16 | } 17 | 18 | /** 19 | * 此方法需要用户根据自己程序代码,在适当位置手动触发调用,本SDK里无法判断调用时机 20 | */ 21 | public static void remove() { 22 | THREAD_LOCAL.remove(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/main/java/me/chanjar/weixin/qidian/util/json/WxQidianGsonBuilder.java: -------------------------------------------------------------------------------- 1 | package me.chanjar.weixin.qidian.util.json; 2 | 3 | import com.google.gson.Gson; 4 | import com.google.gson.GsonBuilder; 5 | 6 | /** 7 | * @author someone 8 | */ 9 | public class WxQidianGsonBuilder { 10 | 11 | private static final GsonBuilder INSTANCE = new GsonBuilder(); 12 | 13 | static { 14 | INSTANCE.disableHtmlEscaping(); 15 | } 16 | 17 | public static Gson create() { 18 | return INSTANCE.create(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | %d{HH:mm:ss.SSS} [%thread] %-5level %replace(%caller{1}){'Caller', ''} - %msg%n 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /weixin-java-qidian/src/test/resources/test-config.sample.xml: -------------------------------------------------------------------------------- 1 | 2 | 公众号appID 3 | 公众号appsecret 4 | 公众号Token 5 | 公众号EncodingAESKey 6 | 可以不填写 7 | 可以不填写 8 | 某个加你公众号的用户的openId 9 | 微信商户平台ID 10 | 商户平台设置的API密钥 11 | 商户平台的证书文件地址 12 | 模版消息的模版ID 13 | 网页授权获取用户信息回调地址 14 | 网页应用授权登陆回调地址 15 | 完整客服账号,格式为:账号前缀@公众号微信号 16 | 17 | --------------------------------------------------------------------------------