天天看點

php之微信公衆号發送模闆消息

講一下開發項目中微信公衆号發送模闆消息的實作過程(我用的還是Thinkphp5.0)。

先看一下效果,如圖:

php之微信公衆号發送模闆消息

就是類似于這樣的,下面講一下實作過程:

第一步:微信公衆号申請模闆消息權限:

php之微信公衆号發送模闆消息
立即申請:
php之微信公衆号發送模闆消息
申請過程就不說了,送出并且申請通過後,可以在模闆庫中看到模闆消息清單:
php之微信公衆号發送模闆消息
想用哪個模闆點選進去添加就行了:
php之微信公衆号發送模闆消息
添加模闆後就存放到“我的模闆庫”中了,這是我添加的需要用到的一些:
php之微信公衆号發送模闆消息
點選檢視模闆的詳情,可以看到模闆的id及各項内容參數名,不同的模闆消息的内容結構不一樣。這些id及字段名在程式中會使用到:
php之微信公衆号發送模闆消息

第二步:程式實作模闆消息SDK:

同樣的,模闆消息是使用access token來發送的,是以要擷取token。

我把模闆消息的類檔案放在了extend下面,大緻位置如圖:

php之微信公衆号發送模闆消息
代碼截圖如下:
php之微信公衆号發送模闆消息

類檔案這樣就可以了,到時候直接引入使用就可以了。

第三步:構模組化闆消息:

我把需要用到的模闆消息 都寫成一個個方法,放在公共類檔案中了,可以參考一下:

//下單成功通知模闆
/*
 * openid:微信唯一辨別
 * orderSn:訂單号
 * goods_name:商品名稱
 * goods_num:商品數量
 * allMoney:總價格
 */
function orderSuccess($openid=null,$orderSn=null,$goods_name=null,$goods_num=null,$allMoney=null){
    $template = array(
        "touser" => "$openid",
        "template_id" => "gApc7CzZSiJOZ7OeoXKK8APmz-dcuQuwfBTzPblEWv4",
        'url' => '跳轉位址',
        'topcolor' => '#ccc',
        'data' => array('first'   => array('value' =>urlencode('親,您的訂單已建立成功,我們會立即為您備貨,并在第一時間内為您安排專人免費送貨到家!訂單詳情如下'),
                                           'color' =>"#743A3A",
        ),
            'keyword1' => array('value' =>urlencode($orderSn),
                                'color' =>'#FF0000'
            ),
            'keyword2' => array('value' =>urlencode($goods_name),
                                'color' =>'#FF0000'
            ),
            'keyword3' => array('value' =>urlencode($goods_num),
                                'color' =>'#FF0000'
            ),
            'keyword4' => array('value' =>urlencode($allMoney),
                                'color' =>'#FF0000'
            ),
            'keyword5' => array('value' =>urlencode('線上支付'),
                                'color' =>'#FF0000'
            ),
            'remark'   => array('value' =>urlencode('如果您對以上資訊有任何疑問,請直接在平台上回複您的問題即可,或撥打客服電話4001021789。再次感謝您的惠顧!'),
                                'color' =>'#FF0000'
            ),
        )
    );
    return $template;
}      

這隻是我寫的其中一個下單成功的模闆消息,放在common檔案中了,這樣基本上就完成了:

下面引用模闆消息發送到微信公衆号中

//構造消息模闆
                    $template =orderSuccess($openid,$reoderSn,$goodsNames,$sum,$money);
                    //引入模闆消息類
                    Loader::import('org\WxMessage', EXTEND_PATH);
                    //執行個體化消息類
                    $message = new \WxMessage();
                    //發送消息
                    $message->send_template_message(urldecode(json_encode($template)));