小程序发送订阅消息接口sendMessage在小程序端允许订阅后,如何长期发送订阅?
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;
}