微信小程序> 微信公众号模板,微信小程序,公众号发送模板消息

微信公众号模板,微信小程序,公众号发送模板消息

浏览量:839 时间: 来源:小气鬼哟
微信小程序,公众号发送模板消息小程序发送模板消息和公众号有一点不同的可能就是小程序需要一个form_id,这个是发起支付或者提交表单的时候才能获取到,提交表单得到的formId有效期7天且只能用一次,支付获得的预订单Id可以使用三次,公众号则不需要,不过小程序的模板消息是在‘服务通知’栏目里,公众号的模板消息是在公众号对话框里,直接上代码了
先需要封装一个将需要发送给用户的信息转换成json的方法
/@methodpackJsonmsg@参数@paramfirst头部@参数@paramremark说明@参数@return@返回类型:JSONObject/publicJSONObjectJsonMsg(){JSONObjectjson=newJSONObject();try{JSONObjectjsonFirst=newJSONObject();jsonFirst.put("value","xxxx");jsonFirst.put("color","#173177");json.put("first",jsonFirst);/信息部分JSON/JSONObjectk1=newJSONObject();k1.put("value",“xx”);k1.put("color","#173177");json.put("keyword1",k1);JSONObjectk2=newJSONObject();k2.put("value",“xx”);k2.put("color","#173177");json.put("keyword2",k2);//具体模板消息有几个参数就写几个可查看小程序后台模板消息JSONObjectjsonRemark=newJSONObject();jsonRemark.put("value","xxxxx");jsonRemark.put("color","#173177");json.put("Remark",jsonRemark);}catch(JSONExceptione){e.printStackTrace();}returnjson;}封装好主要信息就可以发送了
/@methodsendWechatmsgToUser@描述:TODO(发送模板信息给用户)@参数@paramtouser用户的openid@参数@paramtemplat_id信息模板id@参数@paramurl用户点击详情时跳转的url@参数@paramtopcolor模板字体的颜色@参数@paramdata模板详情变量Json格式@参数@return@返回类型:String/publicStringsendWechatmsgToUser(){Stringtmpurl="https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN";//公众号的发送模板消息连接是:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=accessToken换成自己公众号的就好StringaccessToken="";//获取的accessToken有效期为2小时可以存储在库中,定时更新JSONObjectjson=newJSONObject();try{json.put("touser",openId);//所要发送的用户openIdjson.put("template_id","xxx小程序后台的模板Id");json.put("page","pages/index/index");//点击模板可以跳转到小程序的具体界面json.put("form_id",formId);//用户的fromId或者预订单Idjson.put("topcolor","#173177");json.put("data",data);//这个data可以直接调用上文的JsonMsg方法生成所需要发送给用户的信息}catch(JSONExceptione){e.printStackTrace();}/公众号模板消息在发送给微信服务器的信息和小程序有一些不一样json.put("miniprogram",“此处json对象中放入小程序的appid和具体界面地址如:pages/index/index点击模板消息是可以直接进入小程序”);json.put("url","此处填写的url可以跳转到需要连接的地址,如果是支付的模板消息就可以跳转到该用户的支付详情");///http带上json文件发起请求百度一下很多下文也放一个Stringresult=httpsRequest(url,"POST",json.toString());try{JSONObjectresultJson=JSON.parseObject(result);System.out.println("模板消息返回数据:"+resultJson);Stringerrmsg=(String)resultJson.get("errmsg");if(!"ok".equals(errmsg)){//如果为errmsg为ok,则代表发送成功,公众号推送信息给用户了。return"error";}}catch(JSONExceptione){e.printStackTrace();}return"success";}http携带json请求
/http请求方法@paramrequestUrl@paramrequestMethod@paramoutputStr@return/publicStringhttpsRequest(StringrequestUrl,StringrequestMethod,StringoutputStr){try{URLurl=newURL(requestUrl);HttpsURLConnectionconn=(HttpsURLConnection)url.openConnection();conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);//设置请求方式(GET/POST)conn.setRequestMethod(requestMethod);conn.setRequestProperty("content-type","application/x-www-form-urlencoded");//当outputStr不为null时向输出流写数据if(null!=outputStr){OutputStreamoutputStream=conn.getOutputStream();//注意编码格式outputStream.write(outputStr.getBytes("UTF-8"));outputStream.close();}//从输入流读取返回内容InputStreaminputStream=conn.getInputStream();InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"utf-8");BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);Stringstr=null;StringBufferbuffer=newStringBuffer();while((str=bufferedReader.readLine())!=null){buffer.append(str);}//释放资源bufferedReader.close();inputStreamReader.close();inputStream.close();inputStream=null;conn.disconnect();returnbuffer.toString();}catch(ConnectExceptionce){System.out.println("连接超时:{}");}catch(Exceptione){System.out.println("https请求异常:{}");}returnnull;}记录模板消息发送方式

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎