try {
String accessToken = getAccessToken();
String url = wechatConfig.getSubscribeMessageUrl() + "?access_token=" + accessToken;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<>(message.getMessageContent(), headers);
ResponseEntity<SubscribeMessageResponse> response = restTemplate.postForEntity(url, entity, SubscribeMessageResponse.class);
SubscribeMessageResponse result = response.getBody();
if (result != null && "0".equals(result.getErrcode())) {
subscribeMessageMapper.updateSendStatus(message.getId(), 1, LocalDateTime.now(), null);
log.info("订阅消息发送成功,用户: {}, 模板: {}", message.getOpenId(), message.getTemplateId());
return true;
} else {
String errorMsg = result != null ? result.getErrmsg() : "未知错误";
subscribeMessageMapper.updateSendStatus(message.getId(), 2, LocalDateTime.now(), errorMsg);
log.error("订阅消息发送失败,用户: {}, 错误: {}", message.getOpenId(), errorMsg);
return false;
}
} catch (Exception e) {
log.error("发送订阅消息异常", e);
subscribeMessageMapper.updateSendStatus(message.getId(), 2, LocalDateTime.now(), e.getMessage());
return false;
}
什么类目的账户?大部分账户是没有长期消息模板的。
需要你的账号有长期订阅消息模板才行。
若是一次性订阅消息,订阅1次下发1次。