小程序下发模板消息统一通过微信“服务通知”发送,如下图
1. 获取 access_token
access_token 是全局唯一接口调用凭据,开发者调用各接口时都需使用 access_token,需妥善保存。
2. 添加模板消息
跟公众号一样,需要现在小程序后台添加模板消息,然后获取到对应的模板消息ID。
3. 发送模板消息
根据模板消息ID对应的模板消息关键字,在后端构造消息内容,在用户提交表单或者支付的时候,获取到form_id(表单提交场景下,为 submit 事件带上的 formId),后端将消息发送出去。参数如下:
PHP示例代码
$url = 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' . accessToken; //这里一定要按照微信给的格式 $data = array( "touser" => xxxxxxxxx, "template_id" => xxxxxxxxx, "page" => xxxxxxxxx, "form_id" => xxxxxxxxx, "data" => array( "keyword1" => array( "value" => '真好', ), "keyword2" => array( "value" => '天气真好', ), "keyword3" => array( "value" => '点击一下试试', ), ), "emphasis_keyword" => "keyword1.DATA",//需要进行加大的消息 ); $res = postCurl($url, $data, 'json');//将data数组转换为json数据
function postCurl($url,$data,$type) { curl_init=curl_init(); curl_setopt($curl_init,CURLOPT_POST,1); curl_setopt($curl_init,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($curl_init,CURLOPT_SSL_VERIFYHOST,false); if($type == 'json'){ $data = json_encode($data);//对数组进行json编码 } curl_setopt($curl_init,CURLOPT_URL,$url); if(!empty($data)){ curl_setopt($curl_init,CURLOPT_POSTFIELDS,$data); } curl_setopt($curl_init,CURLOPT_RETURNTRANSFER,1); $res = curl_exec($curl_init); if(curl_errno($curl_init)){ echo 'Error+'.curl_error($curl_init); } return $res; }