天天看點

php curl header_PHP實作微信模闆消息發送給指定使用者

php curl header_PHP實作微信模闆消息發送給指定使用者

php中文網最新課程

每日17點準時技術幹貨分享

php curl header_PHP實作微信模闆消息發送給指定使用者
php curl header_PHP實作微信模闆消息發送給指定使用者

收到很多童鞋的咨詢,利用微信公衆号的接口能不能給某個使用者發送消息呢,如果說直接發送呢那還真有些限制;

一個是客服消息接口,但是這個需要使用者在48小時内和公衆号有互動才可以發送。

另外一個就是微信的模闆消息,這個沒有發送時間限制,但是微信為了防止一些垃圾資料需要使用模闆才可以發送。

相信我們平時也收到很多模闆消息,實際效果如下:

這種微信模闆消息的效果如何實作呢?

首先需要在微信公衆平台背景的"功能"菜單中選擇模闆消息,如果菜單中沒有模闆消息,需要點選功能插件進行添加,如下圖:

添加插件之後可以在模闆庫中選擇模闆使用,當然也可以建立模闆,一般來說模闆庫中已經夠用了,選擇模闆後一定要記住模闆ID,這在後續的PHP程式中要用到。

接下來說一下接口的調用規則:

http請求方式: POST

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
           

發送什麼格式的資料呢?發送的資料為json格式,以如下模闆為例:

JSON格式如下:

{"touser": "這裡是接收使用者的OPENID","template_id": "這裡是模闆ID","url": "這裡是點選詳情後跳轉的網址","data": {"first": {"value": "您好!有訪客訪給您留言了。","color": "#173177"},"user": {"value": "張三","color": "#FF0000"},"ask": {"value": "您好,非常關注黎明互聯,有沒有關于支付寶的視訊教程?","color": "#173177"},"remark": {"value": "該使用者已注冊12天","color": "blue"}}}
           

資料格式現在我們明白了,那麼如何使用PHP發送到伺服器呢,另外在代碼裡面JSON隻能定義成資料拼接完成的字元串嗎?

如果不熟悉字元串或者不喜歡用字元串可以用數組轉換,下面以數組為例給出PHP代碼片段實作微信模闆消息:

class WxTmp{    //請求模闆消息的位址    const TEMP_URL = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=';    public function getAccessToken(){        //這裡擷取accesstoken  請根據自己的程式進行修改        return $access_token;    }    /**    * 微信模闆消息發送    * @param $openid 接收使用者的openid    * return 發送結果    */    public function send($openid){        $tokens = $this->getAccessToken();        $url = self::TEMP_URL . $tokens;        $params = [            'touser' => $openid,            'template_id' => 'Oblr5uXH_fS79gMC8E0mYz0CpUAHnJtdvAC3PWABrsk',//模闆ID            'url' => 'https://www.liminghulian.com/course/3/lesson/list', //點選詳情後的URL可以動态定義            'data' =>                    [                      'first' =>                         [                            'value' => '您好!有訪客訪給您留言了。',                            'color' => '#173177'                         ],                      'user' =>                         [                            'value' => '張三',                            'color' => '#FF0000'                         ],                        'ask' =>                         [                                'value' => '您好,非常關注黎明互聯,有沒有關于支付寶的視訊教程?',                                'color' => '#173177'                         ],                       'remark' =>                         [                                'value' => '該使用者已注冊12天',                                'color' => 'blue'                         ]                      ]        ];        $json = json_encode($params,JSON_UNESCAPED_UNICODE);        return $this->curlPost($url, $json);    }    /**    * 通過CURL發送資料    * @param $url 請求的URL位址    * @param $data 發送的資料    * return 請求結果    */    protected function curlPost($url,$data){        $ch = curl_init();        $params[CURLOPT_URL] = $url;    //請求url位址        $params[CURLOPT_HEADER] = FALSE; //是否傳回響應頭資訊        $params[CURLOPT_SSL_VERIFYPEER] = false;    $params[CURLOPT_SSL_VERIFYHOST] = false;        $params[CURLOPT_RETURNTRANSFER] = true; //是否将結果傳回        $params[CURLOPT_POST] = true;        $params[CURLOPT_POSTFIELDS] = $data;        curl_setopt_array($ch, $params); //傳入curl參數        $content = curl_exec($ch); //執行        curl_close($ch); //關閉連接配接        return $content;    }}  $obj = new WxTmp();$openid = '接收模闆資訊的使用者的openid';echo $obj->send($openid);
           
php curl header_PHP實作微信模闆消息發送給指定使用者

-END-

繼續閱讀