后端实现微信小程序发送订阅消息模板

需要access_token,appid,secret,订阅者的openid,template_id(模板ID)

package com.xxxy.tower.service.impl;

import com.xxxy.tower.dto.AccessTokenInfo;
import com.xxxy.tower.service.WxSubscribeService;
import com.xxxy.tower.util.HttpClientUtil;
import com.xxxy.tower.util.JsonUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;


@Slf4j
public class WxSubscribeService {

    public boolean sendMsg() {

        String accessToken = getAccessToken();
        String openId = user.getOpenId();
        String templateId = "qxz3pJIwAZaw8zGOiYRp_mw90UHUMfEJDMw8mkpfVGA";

        Map<String, Object> params = new HashMap<>();
        Map<String, Object> data = new HashMap<>();

        params.put("touser", openId);
        params.put("template_id", templateId);

        //设备编号
        data.put("character_string1", getDataMap("设备编号"));
        //报警类别
        data.put("thing3", getDataMap("报警类别"));
        //报警地点
        data.put("thing7", getDataMap("报警地点"));
        //报警内容
        data.put("thing19", getDataMap("报警内容"));
//        log.info();
        params.put("data", data);


        String json = JsonUtils.objectToJson(params);
        log.info(json);

        String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken;
        String response = HttpClientUtil.doPostJson(url, json);
        log.info(response);
        return true;
    }


    public static String getAccessToken(){

        String grant_type="client_credential";
        //封装请求数据
        Map<String, String> params = new HashMap<>();
        params.put("grant_type", grant_type);
        params.put("appid", "xxxxxxxxxxxx");
        params.put("secret", "xxxxxxxxxxxxxxxxxxxxx");

        //发送GET请求
        String url = "https://api.weixin.qq.com/cgi-bin/token";
        String response = HttpClientUtil.doGet(url, params);
        //拿到accessToken
        try {
            AccessTokenInfo accessTokenInfo = JsonUtils.jsonToPojo(response, AccessTokenInfo.class);
            return accessTokenInfo.getAccess_token();
        }catch (Exception e) {
            return null;
        }
    }

    public static Map<String, String> getDataMap(String msg){
        Map<String, String> map = new HashMap<>();
        map.put("value", msg);
        return map;
    }


}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现 Python 后端微信小程序的交互,可以通过以下步骤: 1. 搭建 Python 后端,使用 Flask 框架创建 API 接口,提供数据服务。 2. 在微信小程序中,使用 wx.request() 方法向 Python 后端发送请求,并获取数据。 3. 在 Python 后端中,解析请求数据,并根据请求返回相应的数据。 具体来说,可以按照以下步骤实现: 1. 在 Python 后端中,安装 Flask 框架,并创建一个简单的 API 接口,如下所示: ```python from flask import Flask, request app = Flask(__name__) @app.route('/api/data', methods=['GET']) def get_data(): # 处理请求数据 data = {'name': '张三', 'age': 20} return data ``` 2. 在微信小程序中,使用 wx.request() 方法向 Python 后端发送请求,并获取数据,如下所示: ```javascript wx.request({ url: 'http://yourserver.com/api/data', success: function(res) { console.log(res.data) // 打印获取到的数据 } }) ``` 3. 在 Python 后端中,解析请求数据,并根据请求返回相应的数据,如下所示: ```python from flask import Flask, request app = Flask(__name__) @app.route('/api/data', methods=['GET']) def get_data(): # 处理请求数据 # 解析请求参数 name = request.args.get('name') age = request.args.get('age') # 返回数据 data = {'name': name, 'age': age} return data ``` 这样,就可以实现 Python 后端微信小程序的交互了。当然,还需要考虑数据安全等问题,例如对请求进行认证、限制请求频率等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值