申请测试号 微信认证 初始化测试号菜单 微信返回多条消息 Java上传图片至微信服务器

本文介绍了微信公众号测试号的配置步骤,包括登录、设置URL和Token,以及SpringBoot中初始化菜单。同时,讲解了如何处理自定义菜单事件,实现返回一条或多条消息的功能。涉及的内容包括发送文本、图片消息,以及利用客服接口发送多条消息的场景。文章还展示了Java上传图片至微信服务器及客服消息推送的代码示例。
摘要由CSDN通过智能技术生成

1申请微信测试号

官方文档传送门
源码地址传送门

1.1 测试号管理

申请微信测试号
使用微信扫码登录,自动生成APPIDAPPsecret,设置URLtoken
测试号管理页面:
在这里插入图片描述
uTools工具进行内网穿透该工具会自动最小化到任务栏,同时按下ALT+空格唤出
在这里插入图片描述
点击连接,并复制地址
在这里插入图片描述
将该地址写入上面测试号管理里面的URL
springboot工程里面的yml配置文件中填入配置好的APPID APPsecrettoken
application.yml配置文件

1.2 初始化菜单

controller配置访问路径
在这里插入图片描述
启动springboot项目,重新关注一下测试号,即可发现自定义菜单已被初始化
初始化菜单

2 微信返回多条消息

需求:点击早晚安打卡,返回消息,属于自定义菜单事件

2.1 发送一条消息

在这里插入图片描述
在MenuHandler里处理
返回图片

return WxMpXmlOutMessage.IMAGE()
  .mediaId(media_id)
  .fromUser(wxMessage.getToUser())
  .toUser(wxMessage.getFromUser())
  .build();

返回文本

return WxMpXmlOutMessage.TEXT().content("早安" + "\n\n" + threeUrl)
  .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
  .build();

这里只用返回图片和文本即可,微信还支持返回语音,视频,图文等内容,详情可见官方文档
在这里插入图片描述

2.2 发送多条消息

这种方式只能返回一条消息,如果有返回多条消息的需求,就需要用到客服推送,官方文档

在这里插入图片描述
另外值得一提的是,微信发送图片,语音等信息,必须要先上传至微信服务器,微信会返回一个media_id,在发送给用户消息的时候,通过该media_id完成对图片等文件的发送。
Java上传图片至微信服务器示例
官方调用微信接口地址为:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN 必须为post请求
在handler里调用微信接口,发送post请求,示例代码

String uploadResult = HttpRequest.post(uploadUrl)  //微信接口地址
        .header(Header.CONTENT_TYPE, content_type)//头信息,多个头信息多次调用此方法即可
        .header(Header.CONNECTION, connection)
        .header(Header.USER_AGENT, user_agent)
        .form(paramMap)//表单内容  这里是一张图片
        .timeout(20000)//超时,毫秒
        .execute().body();

返回的uploadResult信息如下:

{"type":"image","media_id":"8JbJTT4d4Y2YDmLPB3AFY7D4M8cE_UlsUv6Z5wdkNn3dEOA8cRh9F7zSnDeejgIZ","created_at":1602572094,"item":[]}

String类型的,先使用JSON.parseObject()方法把字符串转为Map,再通过get("media_id")去获取到media_id
再调用微信客服发消息

String kfStr = HttpRequest.post(kfUrl) //接口地址
        .body(kfJson) // json格式的字符串
        .execute().body();

kfJson示例

{
	"touser":"oeR6H6KBJPAXo7s1tQdU5lOJ_fHo",
	"msgtype":"image",
	"image":
	{
		"media_id":"8JbJTT4d4Y2YDmLPB3AFY7D4M8cE_UlsUv6Z5wdkNn3dEOA8cRh9F7zSnDeejgIZ"
	}
}

运行效果
效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值