微信订阅消息

21 篇文章 0 订阅
4 篇文章 0 订阅

一、登录微信公众平台开通微信订阅消息

申请开通一个订阅模板

 二、小程序端订阅消息

(是去微信服务器订阅 订阅之后并且同意后 才能接受到)

下面我己做成一个方法 ,在你需要触发的地方调用即可,也可以加自己的业务逻辑

代码是uniapp方式 ,原生小程序同理

			userNotice(){
				uni.requestSubscribeMessage({
				  tmplIds: ['TOQgWtlLMwKCYORrXY07D6QeHmtPpmxGtdFw0A4dFMQ'],//微信公众平台申请的模板
				  success (res) {
					  console.info("订阅消息成功")
				  }
				})
			},

三、根据模板构造请求提

(一样 是后端发送给微信服务器 再转发给小程序具体用户,我这边使用的是Java,参考代码如下)

/**
 * 	微信消息通知工具类
 * @author xingsfdz 
 * xingsfdz@163.com
 * 2022-11-27 17:30
 */
@Slf4j
@Component
public class WxMsgNocUtils {

    @Value("${appid}")
    private String appid;//配置文件里面的appid 小程序appid

    @Value("${secret}")
    private String secret;//配置文件里面自己配置 小程序secret
    
    private static final String tmpId = "TOQgWtlLMwKCYORrXY07D6QeHmtPpmxGtdFw0A4dFMQ";//微信公众平台申请的模板Id
    
	/**
	 * 	1.构造请求体
	 *  2.
	 * @return
	 */
	public void orderSuccess(WxMsgVo bean) {
		try {
	        JSONObject body=new JSONObject();
	        body.set("touser", bean.getTouser());
	        body.set("template_id", tmpId);
	        JSONObject json=new JSONObject();
	        json.set("character_string1", new JSONObject().set("value", bean.getCharacter_string1()));//订单号
	        json.set("thing6", new JSONObject().set("value", bean.getThing6()));//支付人
	        json.set("thing4", new JSONObject().set("value", bean.getThing4()));//产品名
	        json.set("amount3", new JSONObject().set("value",bean.getAmount3()));//价格
	        json.set("date2", new JSONObject().set("value", DateUtils.getStrHMS(bean.getDate2())));//时间 自己转换成字符即可
	        body.set("data", json);
	        //发送
	        String accessToken= this.getWxAccessToken();
	        String res =  cn.hutool.http.HttpUtil.post("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken, body.toString());
			log.info("res=============================>:" + res);
		} catch (Exception e) {
			log.info("=================>订阅消息发送异常");
		}
	}
	
    //获取微信用户acessToken
    public String getWxAccessToken() {
        String result = cn.hutool.http.HttpUtil.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret);
        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
        return jsonObject.getStr("access_token");
    }
}

四、测试

需要先小程序端订阅,然后后台不管什么时候触发,就能发送一条订阅消息到用户,消息将会展示在服务通知里面:

效果如下:

详情:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值