JAVA微信SDK
MAVEN依赖
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>4.5.0</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>4.5.0</version>
<scope>compile</scope>
</dependency>
配置类
@Value("${wx.appId:wx4adbfb50b90e****}")
private String appId;
@Value("${wx.appSecret:efea79b3b4b0ae4de9d3ef437d37****}")
private String appSecret;
@Bean
WxMpMapConfigImpl wxMpInMemoryConfigStorage() {
WxMpMapConfigImpl config = new WxMpMapConfigImpl();
config.setAppId(appId);
config.setSecret(appSecret);
return config;
}
@Bean
WxMpService wxMpService() {
WxMpService wxService = new WxMpServiceImpl();
wxService.setWxMpConfigStorage(wxMpInMemoryConfigStorage());
return wxService;
}
调用订阅消息通知
public void sendMsg(MessageBean messageBean) {
log.info("跳转页面:{}", skipPage);
String page = skipPage + messageBean.getReserveCode();
GovUserBean govUserBean = govUserService.find(messageBean.getUserCode());
ReserveBean reserveBean = reserveService.find(messageBean.getReserveCode());
MatterBean matterBean = matterService.find(messageBean.getMatterCode());
ServiceHallBean serviceHallBean = serviceHallService.find(messageBean.getHallCode());
if (govUserBean != null && StringUtils.isNotEmpty(govUserBean.getOpenid())) {
if (StringUtils.isNotEmpty(messageBean.getStatus()) && (messageBean.getStatus().equals(ReserveStatus.CANCEL)
|| messageBean.getStatus().equals(ReserveStatus.EXPIRE) || messageBean.getStatus().equals("2")
|| messageBean.getStatus().equals("5") || messageBean.getStatus().equals("6"))) {
WxMpTemplateMessage wxMpTemplateMessage = new WxMpTemplateMessage();
wxMpTemplateMessage.setToUser(govUserBean.getOpenid());
wxMpTemplateMessage.setTemplateId(cancelTemplateId);
wxMpTemplateMessage.setUrl(page);
if (reserveBean != null) {
wxMpTemplateMessage.addData(new WxMpTemplateData("thing10", reserveBean.getUsername()));
}
if (matterBean != null) {
wxMpTemplateMessage.addData(new WxMpTemplateData("thing13", null == matterBean ? null : matterBean.getName()));
}
wxMpTemplateMessage.addData(new WxMpTemplateData("time7", DateFormUtils.dateFormat(messageBean.getReserveDate(), "yyyy-MM-dd")));
wxMpTemplateMessage.addData(new WxMpTemplateData("time5", DateFormUtils.dateFormat(messageBean.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
try {
wxMpService.getTemplateMsgService().sendTemplateMsg(wxMpTemplateMessage);
messageBean.setIsPush("yes");
messageService.update(messageBean);
} catch (Exception e) {
log.info(String.valueOf(e));
e.printStackTrace();
}
} else {
WxMpTemplateMessage wxMpTemplateMessage = new WxMpTemplateMessage();
wxMpTemplateMessage.setToUser(govUserBean.getOpenid());
wxMpTemplateMessage.setTemplateId(templateId);
wxMpTemplateMessage.setUrl(page);
if (matterBean != null) {
wxMpTemplateMessage.addData(new WxMpTemplateData("thing29", null == matterBean ? null : matterBean.getName()));
}
if (reserveBean != null) {
wxMpTemplateMessage.addData(new WxMpTemplateData("thing9", reserveBean.getUsername()));
}
wxMpTemplateMessage.addData(new WxMpTemplateData("time13", DateFormUtils.dateFormat(messageBean.getReserveDate(), "yyyy-MM-dd")));
wxMpTemplateMessage.addData(new WxMpTemplateData("thing27", MsgStatus.getNameByStatus(messageBean.getStatus())));
wxMpTemplateMessage.addData(new WxMpTemplateData("thing18", null == serviceHallBean ? null : serviceHallBean.getName()));
try {
wxMpService.getTemplateMsgService().sendTemplateMsg(wxMpTemplateMessage);
messageBean.setIsPush("yes");
messageService.update(messageBean);
} catch (Exception e) {
log.info(String.valueOf(e));
e.printStackTrace();
}
}
}
}
获取openId
WxOAuth2AccessToken accessToken = null;
try {
accessToken = wxMpService.getOAuth2Service().getAccessToken(govUserBean.getWxCode());
} catch (WxErrorException e) {
logger.info("获取openid失败");
throw new RuntimeException(e);
}