講一下開發項目中微信公衆号發送模闆消息的實作過程(我用的還是Thinkphp5.0)。
先看一下效果,如圖:
就是類似于這樣的,下面講一下實作過程:
第一步:微信公衆号申請模闆消息權限:
立即申請: 申請過程就不說了,送出并且申請通過後,可以在模闆庫中看到模闆消息清單: 想用哪個模闆點選進去添加就行了: 添加模闆後就存放到“我的模闆庫”中了,這是我添加的需要用到的一些: 點選檢視模闆的詳情,可以看到模闆的id及各項内容參數名,不同的模闆消息的内容結構不一樣。這些id及字段名在程式中會使用到:第二步:程式實作模闆消息SDK:
同樣的,模闆消息是使用access token來發送的,是以要擷取token。
我把模闆消息的類檔案放在了extend下面,大緻位置如圖:
代碼截圖如下:類檔案這樣就可以了,到時候直接引入使用就可以了。
第三步:構模組化闆消息:
我把需要用到的模闆消息 都寫成一個個方法,放在公共類檔案中了,可以參考一下:
//下單成功通知模闆
/*
* 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)));