如題,就是這么個玩意,主要是需要前端發一個form_id。我這只詳細說后端代碼。
//接收前端傳過來的form_id
$form_id = $_POST['form_id'];
//這個是前端傳過來的該用戶的openid
$user_id = $_POST['user_id'];
//獲取token
$token=$this->token();
//拼接url地址
$url="https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=$token";
//準備好模板消息接口要的數據
$ar=array(
'touser'=>$user_id,
//這個是前端在微信公眾平臺配置的模板id
'template_id'=>'自己填',
'form_id'=>$form_id,
//這個data才是重頭戲,前端配置模板的時候,對照著下圖
'data'=>array(
'keyword1'=>array(
'value'=>'數據'
),
'keyword2'=>array(
'value'=>'數據'
),
//然后還有那么多,我就懶得寫了
),
//還有這個就是最重要的代碼,不寫這個根本不行
'emphasis_keyword'=>'keyword1.DATA'
);
//轉化json格式
$a =json_encode($ar,JSON_UNESCAPED_UNICODE);
$header = "Accept-Charset: utf-8";
//開始模擬請求了
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($chl, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $a);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmp = curl_exec($ch);
curl_close($ch);
//這個只是看返回值。
var_dump($tmp);
如果打印出來是什么41028什么的,說明就是form_id沒有值,或者已經過期。form_id可以存表里,在七天內有效。至于其他的錯誤碼,就只有看微信官方說明咯