關于微信小程序發送模板消息

如題,就是這么個玩意,主要是需要前端發一個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可以存表里,在七天內有效。至于其他的錯誤碼,就只有看微信官方說明咯

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容