# weixin-java-config
1.目录说明:多配置文件目录
2.项目多配置集锦
```yml
wechat:
pay: #微信服务商支付
configs:
- appId: wxe97b2x9c2b3d #spAppId
mchId: 16486610 #服务商商户
subAppId: wx118cexxe3c07679 #子appId
subMchId: 16496705 #子商户
apiV3Key: Dc1DBwSc094jAKDGR5aqqb7PTHr #apiV3密钥
privateKeyPath: classpath:cert/apiclient_key.pem #服务商证书文件,apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径(可以配置绝对路径)
privateCertPath: classpath:cert/apiclient_cert.pem #apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径
miniapp: #小程序
configs:
- appid: wx118ce3xxc76ccg
secret: 8a132a276ee2f8fb58b1ed8f2
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
cp: #企业微信
corpId: wwa3be8efd2addfgj
appConfigs:
- agentId: 10001 #客户联系
secret: T5fTj1n-sBAT4rKNW5c9IYNfPdXZ8-oGol5tX
token: 2bSNqTcLtFYBUa1u2
aesKey: AXazu2Xyw44SNY1x8go2phn9p9B2O9oiEfqPN
- agentId: 10003 #会话内容存档
secret: xIpum7Yt4NMXcyxdzcQ2l_46BG4QIQDR57MhA
token:
aesKey:
- agentId: 3010011 #打卡
secret: 3i2Mhfusifaw_-04bMYI8OoKGxPe9mDALbUxV
token:
aesKey:
- agentId: 19998 #通讯录同步
secret: rNyDae0Pg-3d-wqTd_ozMSJfF0DEjTCz3b_pr
token: xUke8yZciAZqImGZ
aesKey: EUTVyArqJcfnpFiudxjRpuOexNqBoPbwrNG3R
- agentId: 20000 #微盘
secret: D-TVMvUji7PZZdjhZOSgiy2MTuBd0OCdvI_zi
token:
aesKey:
```
3.主要代码
###### 1)微信服务商支付
```java
@Data
@ConfigurationProperties(prefix = "wechat.pay")
public class WxPayProperties {
private List<Config> configs;
@Getter
@Setter
public static class Config {
private String appId;
private String mchId;
private String subAppId;
private String subMchId;
private String apiV3Key;
private String privateKeyPath;
private String privateCertPath;
}
}
```
```java
@Configuration
@EnableConfigurationProperties(WxPayProperties.class)
@AllArgsConstructor
public class WxPayConfiguration {
private WxPayProperties properties;
@Bean
public WxPayService wxPayService() {
// 多配置
WxPayService wxPayService = new WxPayServiceImpl();
Map<String, WxPayConfig> payConfigs = this.properties.getConfigs().stream().map(config -> {
WxPayConfig payConfig = new WxPayConfig();
payConfig.setAppId(StringUtils.trimToNull(config.getAppId()));
payConfig.setMchId(StringUtils.trimToNull(config.getMchId()));
payConfig.setSubAppId(StringUtils.trimToNull(config.getSubAppId()));
payConfig.setSubMchId(StringUtils.trimToNull(config.getSubMchId()));
payConfig.setApiV3Key(StringUtils.trimToNull(config.getApiV3Key()));
payConfig.setPrivateKeyPath(StringUtils.trimToNull(config.getPrivateKeyPath()));
payConfig.setPrivateCertPath(StringUtils.trimToNull(config.getPrivateCertPath()));
// 可以指定是否使用沙箱环境
payConfig.setUseSandboxEnv(false);
return payConfig;
}).collect(Collectors.toMap(config -> config.getSubMchId(), a -> a));
wxPayService.setMultiConfig(payConfigs);
return wxPayService;
}
}
```
###### 2)微信小程序
```java
@Setter
@Getter
@ConfigurationProperties(prefix = "wechat.miniapp")
public class WxMaProperties {
private List<Config> configs;
@Data
public static class Config {
/**
* 设置微信小程序的appid
*/
private String appid;
/**
* 设置微信小程序的Secret
*/
private String secret;
/**
* 设置微信小程序消息服务器配置的token
*/
private String token;
/**
* 设置微信小程序消息服务器配置的EncodingAESKey
*/
private String aesKey;
/**
* 消息格式,XML或者JSON
*/
private String msgDataFormat;
}
}
```
```java
@Configuration
@EnableConfigurationProperties(WxMaProperties.class)
public class WxMaConfiguration {
private WxMaProperties properties;
private static Map<String, WxMaService> maServices;
private static final Map<String, WxMaMessageRouter> routers = Maps.newHashMap();
@Autowired
public WxMaConfiguration(WxMaProperties properties) {
this.properties = properties;
}
public static WxMaService getMaService(String appId) {
WxMaService wxService = maServices.get(appId);
Optional.ofNullable(wxService).orElseThrow(() -> new RuntimeException("没有配置appId"));
return wxService;
}
public static WxMaMessageRouter getRouter(String appId) {
return routers.get(appId);
}
@PostConstruct
public void init() {
List<WxMaProperties.Config> configs = this.properties.getConfigs();
if (configs == null) {
return;
}
maServices = configs.stream().map(a -> {
// 多配置
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
config.setAppid(a.getAppid());
config.setSecret(a.getSecret());
config.setToken(a.getToken());
config.setAesKey(a.getAesKey());
config.setMsgDataFormat(a.getMsgDataFormat());
WxMaService service = new WxMaServiceImpl();
service.setWxMaConfig(config);
routers.put(a.getAppid(), this.newRouter(service));
return service;
}).collect(Collectors.toMap(s -> s.getWxMaConfig().getAppid(), a -> a));
}
private WxMaMessageRouter newRouter(WxMaService service) {
final WxMaMessageRouter router = new WxMaMessageRouter(service);
router
.rule().handler(logHandler).next()
.rule().async(false).content("订阅消息").handler(subscribeMsgHandler).end()
.rule().async(false).content("文本").handler(textHandler).end()
.rule().async(false).content("图片").handler(picHandler).end()
.rule().async(false).content("二维码").handler(qrcodeHandler).end();
return router;
}
private final WxMaMessageHandler subscribeMsgHandler = (wxMessage, context, service, sessionManager) -> {
service.getMsgService().sendSubscribeMsg(WxMaSubscribeMessage.builder()
.templateId("此处更换为自己的模板id")
.data(Lists.newArrayList(
new WxMaSubscribeMessage.MsgData("keyword1", "339208499")))
.toUser(wxMessage.getFromUser())
.build());
return null;
};
private final WxMaMessageHandler logHandler = (wxMessage, context, service, sessionManager) -> {
log.info("收到logHandler消息:" + wxMessage.toString());
service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson())
.toUser(wxMessage.getFromUser()).build());
return null;
};
private final WxMaMessageHandler textHandler = (wxMessage, context, service, sessionManager) -> {
log.info("收到textHandler消息:" + wxMessage.toString());
service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息")
.toUser(wxMessage.getFromUser()).build());
return null;
};
private final WxMaMessageHandler picHandler = (wxMessage, context, service, sessionManager) -> {
log.info("收到picHandler消息:" + wxMessage.toString());
try {
没有合适的资源?快使用搜索试试~ 我知道了~
微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发
共2000个文件
java:1928个
xml:38个
md:28个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 113 浏览量
2024-11-15
19:21:33
上传
评论
收藏 6.84MB ZIP 举报
温馨提示
微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发。
资源推荐
资源详情
资源评论
收起资源包目录
微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信、视频号、小程序等微信功能模块的后端开发 (2000个子文件)
WxOpenErrorMsgEnum.java 195KB
WxCpExternalContactService.java 62KB
WxOpenComponentServiceImpl.java 57KB
WxCpApiPathConsts.java 45KB
WxCpErrorMsgEnum.java 43KB
WxCpExternalContactServiceImpl.java 41KB
WxOpenComponentService.java 39KB
WxCpMsgAuditTest.java 39KB
WxMpApiUrl.java 39KB
WxCpSchoolUserTest.java 32KB
WxMpXmlMessage.java 28KB
BaseWxCpTpServiceImpl.java 27KB
WxOpenMaService.java 27KB
WxMaErrorMsgEnum.java 26KB
WxCpMessage.java 26KB
WxCpChatModel.java 25KB
WxMpService.java 25KB
BaseWxMpServiceImpl.java 24KB
WxCpExternalContactServiceImplTest.java 23KB
WxChannelApiUrlConstants.java 23KB
BaseWxCpServiceImpl.java 22KB
WxCpMessageTest.java 22KB
WxCpOaServiceImplTest.java 21KB
WxCpTpService.java 21KB
WxCpXmlMessage.java 21KB
WxCpXmlMessageTest.java 19KB
WxMpErrorMsgEnum.java 19KB
WxOpenMaServiceImpl.java 19KB
WxConsts.java 19KB
WxCpTpXmlMessage.java 18KB
WxCpTpLicenseServiceImplTest.java 18KB
WxCpConsts.java 17KB
WxMpXmlMessageTest.java 17KB
BaseWxCpTpServiceImplTest.java 17KB
WxCpOaServiceImpl.java 17KB
WxOpenInMemoryConfigStorage.java 17KB
WxCpService.java 16KB
WxCpSchoolContactMessageTest.java 16KB
WxMpOcrServiceImplTest.java 16KB
WxCpLinkedCorpMessageTest.java 16KB
WxMpMaterialService.java 16KB
BaseWxChannelMessageServiceImpl.java 16KB
WxMpGuideService.java 16KB
WxCpGroupRobotMessage.java 15KB
TemplateCardBuilder.java 15KB
BaseWxChannelMessageService.java 15KB
BaseWxQidianServiceImpl.java 15KB
WxCpOaService.java 15KB
BaseWxChannelServiceImpl.java 14KB
WxMpCardServiceImpl.java 14KB
WxCpTpDefaultConfigImpl.java 14KB
WxCpSchoolUserService.java 14KB
WxOpenApplyIcpFilingParam.java 14KB
WxMpMaterialServiceImplTest.java 14KB
WxCpTpRedissonConfigImpl.java 13KB
WxMpMemberCardServiceImpl.java 13KB
WxCpUserGsonAdapter.java 13KB
WxMpCardService.java 12KB
WxCryptUtil.java 12KB
WxMpMessageRouterRule.java 12KB
WxCpSchoolUserServiceImpl.java 12KB
WxCpTpXmlMessageTest.java 12KB
WxCpKfService.java 12KB
WxMpDataCubeService.java 12KB
WxQidianService.java 12KB
WxMpKefuService.java 12KB
WxCpRedisConfigImpl.java 12KB
BaseWxCpCgServiceImpl.java 11KB
WxCpMessageRouterTest.java 11KB
WxMpMessageRouter.java 11KB
WxCpMsgAuditServiceImpl.java 11KB
WxCpUserService.java 11KB
DefaultApacheHttpClientBuilder.java 11KB
WxCpTpMessageRouter.java 11KB
WxCpCheckinGroupBase.java 11KB
WxCpCropCheckinOption.java 11KB
WxCpXmlApprovalInfo.java 11KB
ApacheHttpDnsClientBuilder.java 11KB
WxCpOaWeDriveService.java 10KB
WxMpMessageRouterTest.java 10KB
WxCpUserServiceImpl.java 10KB
WxCpKfServiceImpl.java 10KB
WxCpOaWeDriveServiceTest.java 10KB
WxCpDefaultConfigImpl.java 10KB
WxCpMailScheduleSendRequest.java 10KB
WxCpSchoolContactMessage.java 10KB
WxCpMessageRouter.java 10KB
WxCpMailMeetingSendRequest.java 10KB
BaseWxMpServiceImplTest.java 10KB
WxMpGuideTagService.java 10KB
WxCpTpPermanentCodeInfo.java 9KB
WxOpenXmlMessage.java 9KB
WxCpOaWeDriveServiceImpl.java 9KB
WxCpCheckinDayData.java 9KB
WxCpOaAgentTest.java 9KB
WxCpMeeting.java 9KB
StandardSession.java 9KB
WxCpLivingTest.java 9KB
WxMpMassMessageServiceImplTest.java 9KB
WxOpenConfigStorage.java 9KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7364
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 加强版Claude提示词
- java医院预约挂号平台源码 医院挂号源码数据库 MySQL源码类型 WebForm
- 科目三-自用-静止商用
- JAVA基于SSM的java智能制造系统源码数据库 MySQL源码类型 WebForm
- matlab求解热传导实例 matlab求解热传导问题的几个例子.pdf
- 数字人软件安装包.apk
- 偏微分方程数值解法的MATLAB源码 一阶双曲型方程数值解法及其MATLAB实现.docx
- 基于MATLAB一维热传导方程的模拟程序.docx
- 基于matlab的一维偏微分方程的pdepe函数解法 MATLAB环境中利用pdepe函数求解一维偏微分方程的技术.docx
- JAVA的Springboot+vue在线考试系统源码数据库 MySQL源码类型 WebForm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功