微信小程序发送模板消息官方API地址
微信小程序发送模板信息首先要在小程序后台添加或者申请个人模板库,来获得相应的模板ID,详情操作可看官方文档
第一步获得access_token,access_token 的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效。实际开发中access_token应该保存数据库并记录过期时间,每次获取判断一下access_token是否失效,失效则从新获取
//curl get请求
function curl_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);
return $data;
}
//获得access_token 并保存数据库
function get_access_token(){
$appid = C("weixin.appid");
$secret = C("weixin.secret");
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}";
$access = json_decode($this->get_access_token(),true);
$access_token= $access['access_token'];
}
以上是获取access_token过程,接下来我们根据模板所需要的信息进行组装,
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"page": "index",
"form_id": "FORMID",
"data": {
"keyword1": {
"value": "天天快递",
"color": "#173177"
},
"keyword2": {
"value": "2015年01月05日 12:30",
"color": "#173177"
},
"keyword3": {
"value": "HUIWEI P10",
"color": "#173177"
} ,
"keyword4": {
"value": "20180323XXXXXXXXXXX",
"color": "#173177"
} ,
"keyword5": {
"value": "广州市天河区天河路208号",
"color": "#173177"
}
},
"emphasis_keyword": "1002598019811"
}
注:填写需要跳转的路径是注意正确写法是 pages/order/order?id=888,其他我试过貌似报错
function templatedata($data){
$template =[];
$template['touser'] = $data['touserid'];
$template['template_id'] = $data['template_id'];
$template['page'] = $data['page'];//pages/order/order?id=888
$template['form_id'] = $data['form_id'];
$data =[];
$keyword1['value'] = $data['快递名称'];
$keyword1['color'] = "#173177";
$data['keyword1'] = $keyword1;
$keyword2['value'] = $data['日期']’;
$keyword2['color'] = "#173177";
$data['keyword2'] = $keyword2;
$keyword3['value'] = $data['商品'];
$keyword3['color'] = "#173177";
$data['keyword3'] = $keyword3;
$keyword4['value'] = $data['订单号'];
$keyword4['color'] = "#173177";
$data['keyword4'] = $keyword4;
$keyword5['value'] = $data['快递单号'];
$keyword5['color'] = "#173177";
$data['keyword5'] = $keyword5;
$template['data'] = $data;
return json_encode($template);
}
public function templatesend(){
$data = [];//根据需要的信息查询的数组
templateOrderSend($data);
$access = json_decode($this->get_access_token(),true);
$access_token= $access['access_token'];
$url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$access_token;
$data = get_http_array($url,$tempdata);
return ($data);
}
function get_http_array($url,$post_data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
$out = json_decode($output);
// $data = object_array($out);
return $out;
}