微信小程序消息模板
wxml:
<form bindsubmit='sendSms' report-submit='true' id='fo'> <button form-type='submit'>发送模板消息button> form>
js:
sendSms:function(e){ var formId = e.detail.formId; wx.login({ success:function(res){ wx.request({ url: 'https://xxxxxx.com/wxtest/getopenid.php', data: { code: res.code, formId:formId }, header: { 'content-type': 'application/json' // 默认值 }, success(res) { console.log(res.data) } }) } }) },
后台php:
$code = $_GET['code']; $formId = $_GET['formId']; $url = 'https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=AppSecret&js_code='.$_GET['code'].'&grant_type=authorization_code'; $uinfo = file_get_contents($url); $uinfo=(array)json_decode($uinfo); $openid=$uinfo['openid']; $url2 = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=AppSecret'; $access_token = file_get_contents($url2); $access_token = (array)json_decode($access_token); // echo $access_token['access_token']; $post_url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='.$access_token['access_token']; $value = array( "keyword1"=>array("value"=>"541212312341312","color"=>"#000000"), "keyword2"=>array("value"=>"3000元","color"=>"#000000"), "keyword3"=>array("value"=>"2018年8月29日","color"=>"#000000"), ); $dd = array(); $dd['touser']=$openid; $dd['template_id']="template_id"; //$dd['page']=''; //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,该字段不填则模板无跳转。 $dd['form_id']=$formId; $dd['data']=$value; //模板内容,不填则下发空模板 $dd['color']=''; //模板内容字体的颜色,不填默认黑色 $dd['color']='#ccc'; $dd['emphasis_keyword']=''; //模板需要放大的关键词,不填则默认无放大 httpPost($post_url,$dd,'json'); function httpPost($url,$data,$type){ if($type=='json'){ $headers = array("Content-type: application/json;charset=UTF-8","Accept: application/json","Cache-Control: no-cache", "Pragma: no-cache"); $data=json_encode($data); } $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS,$data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers ); $output = curl_exec($curl); if (curl_errno($curl)) { echo 'Errno'.curl_error($curl);//捕抓异常 } curl_close($curl); echo $output; }