微信小程序> 模板消息,解决小程序发送模板消息php后台

模板消息,解决小程序发送模板消息php后台

浏览量:939 时间: 来源:zhouzzz000
小程序已经可以用来做商家的业务,实现模板消息的发送就很有必要了,可以通知用户一些消息;
类似于这种的:

首先是小程序端:
首先是表单提交获取formid;
wxml文件代码:
formbindsubmit="submitForm"report-submit//一定要有report-submit,不然获取不到formidviewtext姓名:/textinputtype="text"placeholder="请输入姓名"name="data_name"maxlength="20"value=""auto-focus//viewbuttonform-type="submit"确认参加/button/formjs文件代码:
submitForm:function(e){varname=e.detail.value.data_name;varformid=e.detail.formid;//开发工具里调试的时候显示的是theformIdisamockone,要到真机才能看到formid的值vartarPage="/haa/muban";//点击消息跳转的界面wx.request({url:'http://localhost/test/temMsg.php',//服务器地址data:{formid:formid,name:name,openid:wx.getStorageSync("openid"),//要获取用户的openid才能发送,如果还不会建议看上篇;},header:{"Content-type":"application/json",},success:function(res){console.log(res.data);},fail:function(err){console.log(err);}})}后台php代码:
?phpinclude'getcurl.php';//封装了发送get请求的phpinclude'postCurl.php';//封装了发送post请求的phptemMsg();functiontemMsg(){$name=$_GET['name'];$formid=$_GET['formid'];$temid='nDN7NDX5BB_Dd9PcM7SDlNWGQdPDTIfEf7kloG10E2Q';$page='/haa/muban';$openid=$_GET['openid'];if(!$openid||!$formid)die('failed!');$key1='111111';//发送的消息$key2=$name;$key3='3月28日12:00-3月30日12:00';$key4='联系电话:134135415';$key5='猫萌萌抱枕';$key6='xxx';$access_token=returnAssKey();$url='https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token;$data=array(//这里一定要按照微信给的格式"touser"=$openid,"template_id"=$temid,"page"=$page,"form_id"=$formid,"data"=array("keyword1"=array("value"=$key1,"color"="#173177"),"keyword2"=array("value"=$key2,"color"="#173177"),"keyword3"=array("value"=$key3,"color"="#173177"),"keyword4"=array("value"=$key4,"color"="#173177"),"keyword5"=array("value"=$key5,"color"="#173177"),"keyword6"=array("value"=$key6,"color"="#173177")),"emphasis_keyword"="keyword1.DATA",//需要进行加大的消息);$res=postCurl($url,$data,'json');//将data数组转换为json数据if($res){echojson_encode(array('state'=4,'msg'=$res));}else{echojson_encode(array('state'=5,'msg'=$res));}}functionreturnAsskey(){$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=yourAppid&secret=yourSecert';$ass_key=curl_get($url);$a1=$ass_key-access_token;return$a1;}?postCurl.php文件代码:
?phpfunctionpostCurl($url,$data,$type){if($type=='json'){$data=json_encode($data);//对数组进行json编码$header=array("Content-type:application/json;charset=UTF-8","Accept:application/json","Cache-Control:no-cache","Pragma:no-cache");}$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);if(!empty($data)){curl_setopt($curl,CURLOPT_POSTFIELDS,$data);}curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT_HTTPHEADER,$header);$res=curl_exec($curl);if(curl_errno($curl)){echo'Error+'.curl_error($curl);}curl_close($curl);return$res;}?getCurl.php文件代码:
?phpfunctioncurl_get($url){$curl=curl_init();curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$data=curl_exec($curl);$err=curl_error($curl);curl_close($curl);returnjson_decode($data);//对数据进行json解码}?如果在开发工具上进行调试会出现41028的错误,是因为获取不到formid,可以到手机端调试然后在console里面看到formid添到开发平台上面就可以了
还有就是access_token的时间期限是7200s,到期就要更换,我是直接将时间和access_token,然后每次判断一下当前时间和数据库中存取的时间是否差7200s,到了就更换,感觉这方法很蠢,才刚学php也不会很多,欢迎交流。
最后成功得到通知:

看了好多博客才弄出来,略有成就感

版权声明

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

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

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