已解决,应该是微信本身的问题,第二天我以同样的方式测试了一下可以正常发送
公众号调试工具获取的open_id,但发送消息使用该id报错open_id无效下面是最后一步,发送失败的代码,报的错是无效的open_id""{\"errcode\":40003,\"errmsg\":\"invalid openid hint: [A5nx.a00694107]\"}"" [代码]@GetMapping[代码][代码](value=[代码][代码]"/send-message"[代码][代码])[代码][代码] [代码][代码]@ResponseBody[代码][代码] [代码][代码]public[代码] [代码]String sendMessage() [代码][代码]throws[代码] [代码]Exception{[代码][代码] [代码][代码]String url=[代码][代码]"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=12_s8UlgaPk6ZXQb8ONnQhaDsM4zmofZsPJn6J9G5LR22Cw0M6ZYVueQir2ok4nc7cZ0OB2t6ht3mbNT_dWVvbyFKXJczmJYHBYG0eZp6qQmWfA5geZQLLGa_wpJq4opRtAdNoCOkdov2nJVpPCYRGjACAUNC"[代码][代码];[代码][代码] [代码][代码]Map<String, String> map=[代码][代码]new[代码] [代码]HashMap<>();[代码][代码] [代码][代码]map.put([代码][代码]"template_id"[代码][代码],[代码][代码]"7tXGcdQ776bSvHE92yY6Bo4epJ7N6764uf4F1obUods"[代码][代码]);[代码][代码] [代码][代码]map.put([代码][代码]"touser"[代码][代码], [代码][代码]"oqauU03Yql7kdVd-H09pj8lg5psw"[代码][代码]);[代码][代码] [代码][代码]JSONObject packJsonmsg = packJsonmsg([代码][代码]"first"[代码][代码],[代码][代码]"测试"[代码][代码], [代码][代码]"2"[代码][代码], [代码][代码]"测试"[代码][代码], [代码][代码]"2017-5-2 10:49:38"[代码][代码],[代码][代码]"mark"[代码][代码]);[代码][代码] [代码][代码]map.put([代码][代码]"data"[代码][代码],packJsonmsg.toJSONString());[代码][代码] [代码][代码]HttpKit.setCharSet([代码][代码]"UTF-8"[代码][代码]);[代码][代码] [代码][代码]//执行post请求[代码][代码] [代码][代码]String post = HttpKit.post(url, map, packJsonmsg.toJSONString());[代码][代码] [代码][代码]return[代码] [代码]post;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 打包一个模板数据[代码][代码] [代码][代码]* auther:W.Z[代码][代码] [代码][代码]* date:2018年8月8日[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]public[代码] [代码]JSONObject packJsonmsg(String firstString,String keyword11, String keyword21, String keyword31, String keyword41,String remarkString){[代码][代码] [代码][代码]JSONObject json = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]JSONObject keywordfirst = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keywordfirst.put([代码][代码]"value"[代码][代码], firstString);[代码][代码] [代码][代码]json.put([代码][代码]"first"[代码][代码], keywordfirst);[代码][代码] [代码][代码]JSONObject keyword1 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword1.put([代码][代码]"value"[代码][代码], keyword11);[代码][代码] [代码][代码]json.put([代码][代码]"keyword1"[代码][代码], keyword1);[代码][代码] [代码] [代码] [代码][代码]JSONObject keyword2 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword2.put([代码][代码]"value"[代码][代码], keyword21);[代码][代码] [代码][代码]json.put([代码][代码]"keyword2"[代码][代码], keyword2);[代码][代码] [代码][代码]JSONObject keyword3 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword3.put([代码][代码]"value"[代码][代码], keyword31);[代码][代码]// keyword3.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword3"[代码][代码], keyword3);[代码][代码] [代码][代码]JSONObject keyword4 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword4.put([代码][代码]"value"[代码][代码], keyword41);[代码][代码]// keyword4.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword4"[代码][代码], keyword4);[代码][代码] [代码][代码]JSONObject remark = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]remark.put([代码][代码]"value"[代码][代码], remarkString);[代码][代码]// remark.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword4"[代码][代码], remark);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](JSONException e) {[代码][代码] [代码][代码]e.printStackTrace();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]json;[代码][代码] [代码][代码]}[代码] ---------------------------------------------------------------------------------------------------------- 附上步骤 1.首先在调试工具获取accessToken----成功 [图片] 2.第二,获取所有的公众号粉丝 open_id [图片] 3.调用相关api接口,见最上面代码 4.执行失败 [图片] 我的open_id是在微信官方DEBUG地址调试的"https://mp.weixin.qq.com/debug/"取得的应该是对的啊, 有人知道为什么没
2018-08-17