微信公众平台开发(12)--主动发送消息(客服消息)

时间:2025-03-18 08:01:17

点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载

本文目录

  • 1. 前言
  • 2. 代码
  • 3. 测试
  • 4. 发送其他类型消息
  • 5. 小结

1. 前言

上一篇我们获取到了用户信息,本篇我们实现下主动给客户发送消息,也叫客服消息。

2. 代码

代码比较简单,如下:

/**
 * 客服消息
 */
@RestController
public class KefuMessageController {
	@Autowired
	private WxMpService wxMpService;

	/**
	 * 主动发送消息
	 */
	@RequestMapping("/sendMessage")
	public boolean sendMessage(@RequestParam("openid") String openid, @RequestParam("content") String content) throws WxErrorException {
		WxMpKefuMessage message=WxMpKefuMessage.TEXT().toUser(openid).content(content).build();
		wxMpService.getKefuService().sendKefuMessage(message);
		return true;
	}
}

通过sendMessage方法,即可给指定openid的用发送content文本消息。

3. 测试

访问http://127.0.0.1/wx-server/sendMessage?openid=oINiq6UqTiKqfXN3H6RmeKvvRnmw&content=这是一个测试消息。注意openid为之前章节获取的关注本公众号的用户openid。

此时打开对应用户关注的公众号会话信息,会发现已收到相关消息。

4. 发送其他类型消息

实际上,除了文本消息,还有其他类型的消息,此处给出格式,感兴趣的同学自己去研究就OK。

文本消息:

WxMpKefuMessage
  .TEXT()
  .toUser("OPENID")
  .content("sfsfdsdf")
  .build();

图片消息:

WxMpKefuMessage
  .IMAGE()
  .toUser("OPENID")
  .mediaId("MEDIA_ID")
  .build();

语音消息:

WxMpKefuMessage.VOICE()
  .toUser("OPENID")
  .mediaId("MEDIA_ID")
  .build();

视频消息:

WxMpKefuMessage.VIDEO()
  .toUser("OPENID")
  .title("TITLE")
  .mediaId("MEDIA_ID")
  .thumbMediaId("MEDIA_ID")
  .description("DESCRIPTION")
  .build();

音乐消息:

WxMpKefuMessage.MUSIC()
 .toUser("OPENID")
 .title("TITLE")
 .thumbMediaId("MEDIA_ID")
 .description("DESCRIPTION")
 .musicUrl("MUSIC_URL")
 .hqMusicUrl("HQ_MUSIC_URL")
 .build();

图文消息:

WxMpKefuMessage.WxArticle article1 = new WxMpKefuMessage.WxArticle();
article1.setUrl("URL");
article1.setPicUrl("PIC_URL");
article1.setDescription("Is Really A Happy Day");
article1.setTitle("Happy Day");

WxMpKefuMessage.WxArticle article2 = new WxMpKefuMessage.WxArticle();
article2.setUrl("URL");
article2.setPicUrl("PIC_URL");
article2.setDescription("Is Really A Happy Day");
article2.setTitle("Happy Day");

WxMpKefuMessage.NEWS()
   .toUser("OPENID")
   .addArticle(article1)
   .addArticle(article2)
   .build();

5. 小结

使用比较多的是文本消息,本文给出示例,参考实现即可。