微信小程序 服務通知推送 (發送模板消息)


先上圖吧,別到時候看了半天 以為 不是你需要的文章哈

 

 ok,如果符合要求的話 咱們就繼續往下看 ,接下來 咱們按步驟一步一步的來哈

1.在微信公眾平台里設置一個模板

 

 

添加個模板先 ,如果 沒有模板 在頁面切換下 tab選擇 一個 合適的模板 ,然后選擇下合適的字段 添加下,切換到公共模板庫選擇模板和字段,選擇好確定后就可以了,然后有了模板后,在我的模板里選擇你創建的模板 查看詳情

 

 應該是這樣一個頁面哈,有了這些 就可以下一步了

 

2.前端調起授權,別告訴我你們公司沒前端,沒前端的話 ,那你就吧我這段代碼粘貼到小程序里吧,有前端的 話 他應該懂的

setPhoto:function(){
wx.requestSubscribeMessage({
tmplIds: ['5aoiQO173x-B1RyN8d0d4lpgNtOl_qms4d8d'],
success (res) {
console.log(res);
 
},
fail (fail) {
console.log(fail);
}
})
},
 
 
把這段給前端用哈,然后下一步
 
3.后端進行推送
 
 /**微信小程序 推送相冊完成或失敗的信息***/
    static function PushCompleteMsg($title='',$begin_time='',$end_time='',$between='',$remark='',$open_id,$urls)
    {

           self::GetAccessTokens();
           $url ='https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token='.Yii::$app->redis->get('access_token');
          
//這里是個大坑 注意我數組里的 key值,要保證和模板里的每個值都一樣,如果不明白 和我上面的圖片里的值對應下 你就知道怎么傳了哈
$data = array( 'thing1'=>array('value'=>$title), 'date4'=>array('value'=>$begin_time), 'date5'=>array('value'=>$end_time), 'time6'=>array('value'=>$between), 'thing3'=>array('value'=>$remark) ); if(empty($urls)){ $datas = array( 'touser' =>$open_id, 'template_id' =>'5aoiQO17范德薩發范德薩發范德薩發', 'miniprogram_state' =>'trial', //這個是版本 體驗版 正式版啥的 這個你們定 'lang' => 'zh_CN', 'data' => $data ); }else{ $datas = array( 'touser' =>$open_id, 'template_id' =>'5aoiQO173x-B打發大水', 'page' =>$urls, //這個是連接地址有的 需要進入小程序查看詳情就加上這個參數 ,這個地址是小程序前端地址哦 'miniprogram_state' =>'trial', 'path' =>$url, 'lang' => 'zh_CN', 'data' => $data ); } //最后請求第三方就可以了哈 $header = array("Content-Type:multipart/x-www-form-urlencoded"); $response = Utils::curlPost($url,$datas,5,$header,'json'); $res = json_decode($response,true); print_r($res);die; }



/**
* 傳入數組進行HTTP POST請求
*/
static function curlPost($url, $post_data = array(), $timeout = 5, $header = "", $data_type = "") {
$header = empty($header) ? '' : $header;
//支持json數據數據提交
if($data_type == 'json'){
$post_string = json_encode($post_data);
}elseif($data_type == 'array') {
$post_string = $post_data;
}elseif(is_array($post_data)){
$post_string = http_build_query($post_data, '', '&');
}

$ch = curl_init(); // 啟動一個CURL會話
curl_setopt($ch, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 對認證證書來源的檢查 // https請求 不驗證證書和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密算法是否存在
//curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模擬用戶使用的瀏覽器
//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
//curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自動設置Referer
curl_setopt($ch, CURLOPT_POST, true); // 發送一個常規的Post請求
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); // Post提交的數據包
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 設置超時限制防止死循環
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
//curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 獲取的信息以文件流的形式返回
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模擬的header頭
$result = curl_exec($ch);

// 打印請求的header信息
//$a = curl_getinfo($ch);
//var_dump($a);

curl_close($ch);
return $result;
}




 

可以了么  有問題叫我哈

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM