微信公众号开发,java实现微信公众号模版消息推送

java实现微信公众号模版消息推送

准备

登录微信公众号后台(公众号模版消息推送必须为认证后的服务号)获取获取添加模版消息ID 

具体实现

java代码

/**
	 * 体脂数据推送信息给微信
	 * @param access_token
	 * @param open_id
	 * @param highPressure
	 * @param lowPressure
	 * @param heart
	 * @param bloodPressureLevel
	 */
	public  void sendBodyCompostionInfoToWeChart(final String access_token,final String open_id,final String user_name,final String bodyCompostionText,final String test_time){

			try {
				String	regUser = "http://wxdemo.xxxx.com/wxdevices/bodycompositionmain?openId="+open_id;
				String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+access_token;
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("touser", open_id); //推送用户openid
				map.put("template_id", WXUtil.TTJK_TEMP_TIZHI_ID); //指定模版ID
				map.put("url", regUser);  //点击模版跳转地址
				Map<String, Object> data_map =new HashMap<String, Object>();
				Map<String, Object> first = new HashMap<String, Object>();
				first.put("value", "您好,你有一条体脂检测信息");
				first.put("color", "#000000");
				Map<String, Object> keynote1 = new HashMap<String, Object>();
				keynote1.put("value", user_name);
				keynote1.put("color", "#000000");
				Map<String, Object> keynote2 = new HashMap<String, Object>();
				keynote2.put("value", test_time);
				keynote2.put("color", "#000000");
				Map<String, Object> keynote3 = new HashMap<String, Object>();
				keynote3.put("value", bodyCompostionText);
				keynote3.put("color", "#000000");
				Map<String, Object> remark = new HashMap<String, Object>();
				remark.put("value", "点击查看详情");
				remark.put("color", "#000000");
				data_map.put("first", first);
				data_map.put("keyword1", keynote1);
				data_map.put("keyword2", keynote2);
				data_map.put("keyword3", keynote3);
				data_map.put("remark", remark);
				map.put("data", data_map);
				JSONObject json = JSONObject.fromObject(map);
				String result = HttpUtil.sendPost(url, json.toString());
				System.out.println(result);
				JSONObject json_arr = JSONObject.fromObject(result);
				String isOk = String.valueOf(json_arr.get("errmsg"));
				logger.info(" errmsg >>>>>>>>> "+isOk);
				if(isOk.equals("ok")){
					logger.info("体脂据推送成功 , "+open_id );
				}else{
					logger.info("体脂据推送失败 , "+open_id );
				}
			} catch (Exception e) {
				logger.error("", e);
			}
			
	}

 成功截图

 

就是这么简单,如有不明白可以点击博客左边+ wx 帮你解答

### 使用Java开发微信公众号 #### API集成与消息处理最佳实践 对于希望利用Java进行微信公众号开发开发者来说,有多种途径可以选择。一种方式是通过原生HTTP请求直接调用微信提供的API接口来完成诸如模板消息推送等功能[^1]。然而,这种方式可能较为繁琐,尤其是在面对复杂的业务逻辑时。 另一种更为推荐的方式则是借助第三方库简化开发流程。例如`WeixinJava`工具库能够帮助减少编码复杂度并提高效率[^2]。特别是当采用Spring Boot作为应用框架时,可以通过引入特定于微信开发的支持包(如`weixin-java-mp`),使得整个过程更加顺畅[^3]。 具体而言,在基于Spring Boot构建的应用程序中集成本土化支持之前,需先完成必要的准备工作: - 注册微信公众平台账号,并获得相应的AppID和AppSecret; - 修改Maven项目的POM文件以添加所需的依赖项; - 编辑application.yml配置文件设置相关参数; - 创建对应的Java类用于管理属性和服务实现; 针对实际的消息交互部分,则可通过定义控制器接收来自用户的输入,并依据预设条件作出响应——无论是简单的文本回复还是更高级别的多媒体内容发送均能被妥善处理[^4]。 ```java @RestController @RequestMapping("/wechat") public class WeChatController { @Autowired private WxMpService wxService; @GetMapping public String handleGet(@RequestParam(name="signature", required=false) String signature, @RequestParam(name="timestamp", required=false) String timestamp, @RequestParam(name="nonce", required=false) String nonce, @RequestParam(name="echostr", required=false) String echostr){ if (StringUtils.isNotBlank(echostr)){ return this.wxService.checkSignature(timestamp, nonce, signature)? echostr : "error"; } return "hello world!"; } @PostMapping(produces = "text/plain;charset=utf-8") public String post(HttpServletRequest request)throws Exception{ // 处理POST请求... return ""; } } ``` 为了更好地理解和掌握这些概念和技术细节,建议参考官方文档以及其他社区资源中的实例代码片段来进行学习和实验。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优雅de程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值