Java-发送小程序模板消息

Java-发送小程序模板消息

发送小程序模板消息的步骤如下:
  1. 登录小程序管理后台。

  2. 在左侧菜单栏中选择"开发",然后选择"开发设置"。

  3. 在"开发设置"页面中,找到"模板消息"部分,点击"添加模板"。

  4. 弹出的对话框中,选择需要发送的模板。

     注意:发送小程序模板消息需要提前获取到用户的订阅权限,可以通过调用wx.requestSubscribeMessage接口获取。
    
  5. 在对话框中点击"确定",即可添加模板成功。

  6. 在左侧菜单栏中选择"模板消息",然后选择"添加模板消息"。

  7. 在"添加模板消息"页面中,填写模板消息的相关内容,包括模板ID、模板标题、模板内容等。

  8. 点击"确定",即可添加模板消息成功。

  9. 在左侧菜单栏中选择"模板库",找到刚添加的模板消息,点击"设置"。

  10. 在"设置"页面中,填写模板消息的相关配置,包括模板消息的跳转页面、模板消息的可跳转小程序等。

  11. 点击"确定",即可完成模板消息的配置。

  12. 在调用接口时,使用wx.requestSendSubscribeMessage接口发送小程序模板消息。

微信官方文档介绍:

https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/subscribe-message/sendMessage.html

代码示例:

  @Override
    public AjaxResult sendMessage(String content,String userName) {
        try {
            //获取token
            String access_token = "";
            //先查绚,如果没有有效的Token再请求获取Token
            MiniConfig miniConfig = wxApiBusinessMapper.getToken();
            if (miniConfig!=null && miniConfig.getToken()!=null && miniConfig.getToken().trim().length() > 0 ){
                if (miniConfig.getExpireTime()!=null){
                    if (miniConfig.getExpireTime().getTime() < (new Date()).getTime()){
                        AjaxResult ajaxResult = getToken(userName);
                        if ("0".equals(ajaxResult.get("code").toString())){
                            access_token = ajaxResult.get("msg").toString();
                        }
                    }else{
                        access_token = miniConfig.getToken();
                    }
                }else{
                    AjaxResult ajaxResult = getToken(userName);
                    if ("0".equals(ajaxResult.get("code").toString())){
                        access_token = ajaxResult.get("msg").toString();
                    }
                }
            }else{
                AjaxResult ajaxResult = getToken(userName);
                if ("0".equals(ajaxResult.get("code").toString())){
                    access_token = ajaxResult.get("msg").toString();
                }
            }
            System.out.println("access_token: "+access_token);
            System.out.println("content: "+content);
            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + access_token;
            String response = HttpUtil.post(url,content);
            System.out.println("response: "+response);
            JSONObject responseJSONObject = JSONObject.parseObject(response);
            if (responseJSONObject.getIntValue("errcode") == 0) {
                return AjaxResult.success();
            } else {
                return AjaxResult.error("微信公众平台提示," + responseJSONObject.getString("errmsg"));
            }
        } catch (Exception ex) {
            return AjaxResult.error("服务端提示,发送模版消息异常");
        }
    }

@Override
public AjaxResult getToken(String userName) {
    String appIDStr = plaintextCipher(AppID,TYPE);
    String appSecretStr = plaintextCipher(AppSecret,TYPE);
    try {
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appIDStr + "&secret=" + appSecretStr;
        String response = HttpUtil.get(url);
        System.out.println("response==>>"+response);
        JSONObject responseJSONObject = JSONObject.parseObject(response);
        if (responseJSONObject.getString("access_token") == null || responseJSONObject.getString("access_token").trim().length() == 0){
            return AjaxResult.error("微信公众平台提示:" + responseJSONObject.getString("errmsg"));
        }else{
            //删除之前的token
            wxApiBusinessMapper.deleteToken(userName);
            String token = responseJSONObject.getString("access_token");
            System.out.println("token==>>"+token);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date((new Date()).getTime() + ((7200 - (5 * 60)) * 1000));
            Date expireTime = sdf.parse(sdf.format(date));
            //添加新的的token
            MiniConfig miniConfig = new MiniConfig();
            miniConfig.setToken(token);
            miniConfig.setExpireTime(expireTime);
            miniConfig.setCreate_by(userName);
            int num = wxApiBusinessMapper.insertToken(miniConfig);
            if (num > 0){
                return AjaxResult.success(token);
            }else{
                return AjaxResult.error("TOKEN保存失败");
            }
        }
    } catch (Exception ex) {
        return AjaxResult.error("服务端提示,获取TOKEN失败," + ex.getMessage());
    }
}
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值