收藏
回答

小程序发送订阅消息接口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;
}
回答关注问题邀请回答
收藏

2 个回答

  • 舒意|Janie👀
    舒意|Janie👀
    06-30

    什么类目的账户?大部分账户是没有长期消息模板的。

    06-30
    有用
    回复 1
    • Way
      Way
      发表于移动端
      06-30
      已经发现了,感谢回答。
      06-30
      回复
  • Hlxuan.
    Hlxuan.
    06-30

    需要你的账号有长期订阅消息模板才行。

    若是一次性订阅消息,订阅1次下发1次。

    06-30
    有用
    回复 1
    • Way
      Way
      发表于移动端
      06-30
      谢谢回答
      06-30
      回复
登录 后发表内容