微信推送功能 服务端 java springboot

6 篇文章 0 订阅
3 篇文章 0 订阅

1.首先需要在微信开放平台订阅消息中生成自己的模板。
生成模板后获取到对应的 template_id
对于客户端来说,主要的工作就是诱导 用户给予推送权限

服务端则负责向微信开放平台请求推送
代码如下:

import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.springframework.stereotype.Service;

@Service
public class MessageUtil {
	
	//用来获取access_token
    public String getAccessToken() {
    	//这两个都是开发者平台来的,一定要对应上
        String appId = "";
        String appSecret = "";
        //这是请求的接口路径,这个是不变的
        String result = cn.hutool.http.HttpUtil.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret);
        JSONObject jsonObject = JSONUtil.parseObj(result);
        return jsonObject.getStr("access_token");
    }

    public String send(String openId,String template_id,JSONObject json){
        JSONObject body=new JSONObject();
        //用户openId
        body.set("touser",openId);
        //模板Id,就是你申请的那个模板
        body.set("template_id",template_id);
        //方法中传进来,下面会具体讲解这是啥
        body.set("data",json);
        //发送
        String accessToken= getAccessToken();
        System.out.println("accessToken:"+accessToken);
        //向开放平台申请发送推送
        String post =  cn.hutool.http.HttpUtil.post("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken, body.toString());
        System.out.println("post:"+post);
        return "ok";
    }
}

下面举个使用的例子,我这里是支付成功后,发送订阅消息

@RequestMapping(value = "/weChatReturnCommodity")
    public void weChatReturnCommodity(HttpServletRequest request, HttpServletResponse response) throws Exception {
		//前面为支付代码
		
         //发送订阅
         Calendar now = Calendar.getInstance();
         String date= now.get(Calendar.YEAR)+"年"+now.get(Calendar.MONTH)+"月"+now.get(Calendar.DAY_OF_MONTH)+"日";
         JSONObject json=new JSONObject();
         //这下面是封装json 下面的character_string1 thing2 amount4 是根据自己申请的填的,记住有对应的string 类型啥的,开发文档中有标注,别填错了
         json.set("character_string1",new JSONObject().set("value",oId));
         json.set("thing2",new JSONObject().set("value", mallRevenue.getCommodity().getCommodityName()));
         json.set("amount4",new JSONObject().set("value",mallRevenue.getMoney()));
         json.set("thing5",new JSONObject().set("value", mallRevenue.getPoint()));
         json.set("time9",new JSONObject().set("value",date));
         //模板Id
         String template_id="";
         //发送推送
         messageUtil.send(indexUser.getOpenid(),template_id,json);

    }

完成
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值