先上圖吧,別到時候看了半天 以為 不是你需要的文章哈
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;
}
可以了么 有問題叫我哈