收藏
回答

下发统一模板消息接口返回"errcode": 40013?

小程序已关联到公众号,之前代码下发消息通知都是成功的,但是6月下旬突然就不行了

公众号appid: wxc3ce0a5b6d87f00f

小程序appid: wxfc6e5464afebdbf5

麻烦官方帮忙查一下是什么原因


/** 订餐提醒 模板推送 */

    public static void dish_remind(String openid, String datetime,

            String dishclasss, String pagepath) {

        // 获取access_token

        String access_token = WeiXinUtil.get_accessToken();

        String url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token="

                + access_token;

        // 拼接推送的模版

        WxMss wxMssVo = new WxMss();

        // 公众号id appid wxc3ce0a5b6d87f00f

        wxMssVo.setAppid("wxc3ce0a5b6d87f00f");

        // 模版id

        wxMssVo.setTemplate_id("9Mv9PyiDqizOZ3VfyoKL0vH4s2A5F1FQcDpBjJoCmNA");

        // url

        wxMssVo.setUrl("");

        // miniprogram 公众号模板消息所要跳转的小程序

        // 小程序 wxspAppid="wxfc6e5464afebdbf5";  wxdf2b5e2004b6d432  1ed1f5743d71a59beb68be2e8cb32583  自己的


        Map<String, String> miniprogram = new HashMap<String, String>(5);

        miniprogram.put("appid", "wxfc6e5464afebdbf5");


        miniprogram.put("pagepath", pagepath);


        wxMssVo.setMiniprogram(miniprogram);


        Map<String, TemplateData> data = new HashMap<String, TemplateData>(5);

        // first

        TemplateData first = new TemplateData();

        first.setValue("您好,请及时订餐,以便食堂做好食材采购计划!!!!");// 订餐时间18:45至23:59,

        data.put("first", first);


        TemplateData keyword1 = new TemplateData();

        keyword1.setValue(datetime);

        data.put("keyword1", keyword1);


        // 申请人 {{keyword2.DATA}}

        TemplateData keyword2 = new TemplateData();

        keyword2.setValue(dishclasss);

        data.put("keyword2", keyword2);


        // 请假类型 {{keyword2.DATA}}

        TemplateData keyword3 = new TemplateData();

        keyword3.setValue("XXX");

        data.put("keyword3", keyword3);

        // remark

        TemplateData remark = new TemplateData();

        remark.setValue("谢谢配配合,我们会为您准备精美的饭菜!!!");

        data.put("remark", remark);

        wxMssVo.setData(data);


        JSONArray jsonArray = JSONArray.fromObject(wxMssVo);

        String postData = jsonArray.toString();

        System.out.println(postData.toString());

        postData = postData.substring(1, postData.length() - 1);


        JSONObject json = new JSONObject();

        json.put("touser", openid);

        json.put("mp_template_msg", postData);

        System.out.println("-----------json:" + json);


        String results = HttpUtil.request(url, MethodType.Post, null,

                json.toString(), "UTF-8");

        System.out.println("返回结果:" + results);


    }


下面是WeiXinUtil 类

public class WeiXinUtil {

    public static String get_accessToken() {

//wxdf2b5e2004b6d432  1ed1f5743d71a59beb68be2e8cb32583  自己的

//wxfc6e5464afebdbf5  ae90cd7f5fed69575b20a474fa3636b7   公司

        // 小程序唯一标识 (在微信小程序管理后台获取)

        String wxspAppid = "wxfc6e5464afebdbf5";

        // 小程序的 app secret (在微信小程序管理后台获取)

        String wxspSecret = "ae90cd7f5fed69575b20a474fa3636b7";

        // 这里直接写死就可以,不用改,用法可以去看api

        String grant_type = "client_credential";

        // 封装请求数据

        String params = "grant_type=" + grant_type + "&secret=" + wxspSecret + "&appid=" + wxspAppid;

        // 发送GET请求

        String sendGet = HttpRequest.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);

        // 解析相应内容(转换成json对象)

        JSONObject json = new JSONObject(sendGet);

        // 拿到accesstoken

        String accesstoken = (String) json.get("access_token");


        return accesstoken;

    }


    public static void main(String[] args) {

        System.out.println(get_accessToken());

    }


}

回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容
问题标签