微信公衆號實現無限制推送模板消息!可向指定openID羣發

微信認證的服務號纔有推送模板消息接口
因此本文須要在認證服務號的狀況下學習php

圖片描述

以上就是模板消息,只有文字和跳轉連接,沒有封面圖。
在服務號的後臺添加功能插件-模板消息便可。面試

圖片描述

模板消息,都是在後臺選擇一個羣發模板的,而後獲取模板ID,根據這個模板,定義參數便可。
本案例須要獲取ACCESS_TOKEN
獲取ACCESS_TOKEN其實很簡單
開發文檔已經給出了獲取ACCESS_TOKEN的api
https://api.weixin.qq.com/cgi...
而後訪問替換後的連接就會返回一串JSON格式的數據裏面就有ACCESS_TOKENjson

圖片描述

固然ACCESS_TOKEN是會過時的
本身須要整合這個api自動獲取
咱們學習過程當中作測試能夠直接獲取粘貼上去。
固然調用這個接口須要配置IP白名單
若是獲取過程當中出現一串英文,裏面有IP地址,就說明你還沒配置IP白名單
你須要進入公衆號後臺安全中心-IP白名單-粘貼提示的IP地址便可api

若是你要給指定的openID羣發模板消息
例如你公司作教育培訓服務的
有3個學生報了大家公司的某課程培訓班
你須要在上課前15分鐘主動向每一個學生的微信推送模板消息通知上課
那麼這三個學生須要關注你的服務號
你還要獲取到這三個學生的openID
而後存入數組中,遍歷數組發送便可。數組

獲取openID的方法
一、配置回調域名
進入公衆號,接口權限,找到網頁服務,網頁獲取用戶基本信息安全

圖片描述

進去修改你的域名便可
圖片描述
新建oauth.php微信

<?php
  //獲取微信access_token
function getaccess_token(){
    $code = $_GET['code'];
    $appid = '本身的appid';
    $appsecret = '本身的appsecret';
    $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appid}&secret={$appsecret}&code={$code}&grant_type=authorization_code";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
getaccess_token();

配置用戶要訪問的網頁
https://open.weixin.qq.com/co...app

REDIRECT_URI是回調連接
就是上面的oauth.php的地址
例如你的域名是
www.baidu.com
你把oauth.php上傳到根目錄
那麼URL轉碼的回調連接就是
http://www.baidu.com/oauth.phpcurl

回調連接須要URL轉碼
給你們提供一個轉碼工具函數

圖片描述

http://tool.oschina.net/encod...

最終的回調連接是
http%3A%2F%2Fwww.baidu.com%2Foauth.php

例如的你APPID是:wx66666666666666
整個用戶要訪問的網頁就是
https://open.weixin.qq.com/co...://www.baidu.com/oauth.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

用戶訪問的網頁也須要URL轉碼
最終的網址是:
https%3A%2F%2Fopen.weixin.qq.com%2Fconnect%2Foauth2%2Fauthorize%3Fappid%3Dwx66666666666666%26redirect_uri%3Dhttp%3A%2F%2Fwww.baidu.com%2Foauth.php%26response_type%3Dcode%26scope%3DSCOPE%26state%3DSTATE%23wechat_redirect

而後用微信訪問上面的最終的網址,就會返回一串JSON數據,裏面有openid
要想得到3個學生的openid那麼就要這三個學生點進去,獲取發給你

下面就是模板消息推送給指定的openid的代碼
我就以這三個學生的openid爲例

<?php
$ACCESS_TOKEN = "替換你的ACCESS_TOKEN";//ACCESS_TOKEN
//openid數組
$touser = [
    'ouD7BuHpIKRXPIz7pdrwI9IwDRCU',
    'ouD7BuI36wSUZgteyiydmDrldQLU',
    'ouD7BuLejq7R4Vbuyh41bH778cg0'];
//模板消息請求URL
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $ACCESS_TOKEN;

//遍歷發送微信消息
foreach ($touser as $value) {
    $data = getDataArray($value);
    $json_data = json_encode($data);//轉化成json數組讓微信能夠接收
    $res = https_request($url, urldecode($json_data));//請求開始
    $res = json_decode($res, true);
    if ($res['errcode'] == 0 && $res['errcode'] == "ok") {
        echo "發送成功!<br/>";
    }
}

//獲取發送數據數組
function getDataArray($value)
{
    $data = array(
        'touser' => $value, //要發送給用戶的openid
        'template_id' => "mfopDNUlvoBGGsPLB-d_nrfL8Je92xnTq5vk5ZBxL-w",//改爲本身的模板id,在微信後臺模板消息裏查看
        'url' => "http://mp.weixin.qq.com/s/8UWPqHVa8PReWZp-No0ebA", //本身網站連接url
        'data' => array(
            'first' => array(
                'value' => "親愛的同窗,您有考試提醒,請查閱。",
                'color' => "#000"
            ),
            'keyword1' => array(
                'value' => "2017下半年教師資格證面試",
                'color' => "#f00"
            ),
            'keyword2' => array(
                'value' => "2018-1-6",
                'color' => "#173177"
            ),
            'keyword3' => array(
                'value' => "請看您的准考證",
                'color' => "#3d3d3d"
            ),
            'keyword4' => array(
                'value' => "教師資格證試講",
                'color' => "#3d3d3d"
            ),
            'keyword5' => array(
                'value' => "答辯,選題,結構化",
                'color' => "#3d3d3d"
            ),
            'remark' => array(
                'value' => "\n如今是打印准考證時間,請您在考試前打印准考證,戳進來能夠查看詳情>>>",
                'color' => "#3d3d3d"
            ),
        )
    );
    return $data;
}


//curl請求函數,微信都是經過該函數請求
function https_request($url, $data = null)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)) {
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}



?>

新建test.php
拷貝代碼
修改你的
ACCESS_TOKEN
修改你的學生的3個openid
修改你的模板ID
模板ID是什麼?
就是你要推送的那個卡片的模板
例如支付成功模板,上課通知模板,發貨模板....

圖片描述

固然代碼我以爲大家看得懂的!
只要修改模板裏面的自定義參數
而後確保ACCESS_TOKEN還在有效期內
訪問test.php
你這三個學生就會同時收到推送的模板消息了!
一天最多推送100000條!
還能夠點進去直接訪問你配置的lP連接

轉載請註明出處!

學習交流微信:face6009

相關文章
相關標籤/搜索